在无限循环中查找特定素数的程序
Program to find a specific prime number end in an infinite loop
大家好,我有一个问题,我为 projecteuler 编写了这段代码来查找特定的素数,但是
它以无限循环结束我查了一下并找到了许多替代方案,但想了解为什么这段代码只是起作用。我是编程新手,所以如果您有任何建议可以改进我的代码,我将不胜感激。
import math
x = 1 #number that is getting checked
y = 0 #indicator of how many prime numbers found
a = 0 #the most recent prime number
while y < 6:
for i in range (2, int(math.sqrt(x))):
if (x % i ) == 0:
x = x + 1
break
else:
a = x
x = x + 1
y = y + 1
break
print (a)
你输入 x = 1
,然后从 2 开始循环 range
:所以 for
永远不会执行,而 while
无限循环。您需要从 x = 2
开始,或者处理 x = 1
的特殊情况
编辑
该代码适用于 x
至少 9:for
循环永远不会执行,直到 int(math.sqrt(x))
至少为 3
大家好,我有一个问题,我为 projecteuler 编写了这段代码来查找特定的素数,但是 它以无限循环结束我查了一下并找到了许多替代方案,但想了解为什么这段代码只是起作用。我是编程新手,所以如果您有任何建议可以改进我的代码,我将不胜感激。
import math
x = 1 #number that is getting checked
y = 0 #indicator of how many prime numbers found
a = 0 #the most recent prime number
while y < 6:
for i in range (2, int(math.sqrt(x))):
if (x % i ) == 0:
x = x + 1
break
else:
a = x
x = x + 1
y = y + 1
break
print (a)
你输入 x = 1
,然后从 2 开始循环 range
:所以 for
永远不会执行,而 while
无限循环。您需要从 x = 2
开始,或者处理 x = 1
编辑
该代码适用于 x
至少 9:for
循环永远不会执行,直到 int(math.sqrt(x))
至少为 3