【发布时间】:2016-07-27 04:32:58
【问题描述】:
我正在尝试在 python 中编写一个脚本来查找第 1000 个素数。我不明白为什么这在这里不起作用。基本上,当 mod 小于数字的平方根并且仍有余数时,mod 会增加一。这应该一直持续到 mod 等于数字的平方根。然后支票应该保持在 0 并且数字应该是素数。每次我尝试运行脚本时,它都会告诉我存在系统错误。
import math
b=2
count=2
next_odd=3
next_prime=1
check = 0
while count<=10:
while b<float(math.sqrt(next_odd)):
if next_odd%b>0:
b+=1
if next_odd%b == 0:
check+=1
if check > 0:
next_prime=next_odd
next_odd+=2
print(next_prime)
b=2
count+=1`
【问题讨论】:
-
你在
count+=1之后有一个` -
什么“系统错误”?
-
我猜是语法错误
-
如果我理解正确,那么如果对于任何 b,next_odd%b == 0 那么它会导致检查递增到无穷大。
-
b=2和next_odd=3;while b< float(math.sqrt(next_odd))->while 2 < 1.732永远不会发生,b和check永远不会改变,这是一个无限循环。如果不是语法错误,我不知道系统错误是什么,但是如果您将其放入自动检查以测试其是否有正确答案,则可能是超时。