为什么我的代码不能给我素数

时间:2013-10-26 19:24:54

标签: python numbers

import math
prime=True
for num in range(1,1000):
     x=math.sqrt(num)
     x=int(x)
     for i in range(2,x):
        if(num%i==0):
            prime=False
        else:
            print(num)

我试图找到素数,但我似乎无法理解为什么这不起作用。我试图使用平方根来找到问题

1 个答案:

答案 0 :(得分:3)

您需要在打印前测试所有数字。

 for i in range(2,x):
    if(num%i==0):
        prime=False
        break  # optimisation - see comments
 if prime:
        print(num)

另外,为每个数字重置prime为True:

for num in range(1,1000):
    prime = True
    x=math.sqrt(num)