Python - 素数

时间:2015-10-14 17:02:04

标签: python python-2.7 primes

我在python中创建了一个程序,它总计了所有主要的麻木达到10个。到目前为止,我的代码是:

total = 0

for i in range (10):
    for a in range (2,i):
        if i % a == 0:
            break
        else:
            total += i
            break

print total

我的代码不包含2作为素数但包括9.可以有人发现错误吗?

1 个答案:

答案 0 :(得分:2)

您的else:条款必须与for循环而非if声明,而不是break。 正如所指出的那样,2立即通过,这是完全可以的,因为它是素数并执行else子句:

total = 0
for num in range(2, 10):      # Start from 2
    for i in range(2, num):
        if num%i==0:
            break             # Not prime, break causes else clause not to be executed
    else:
        total += num
print total
17

对于非常低的数字,这没关系,尽管你真的只需要检查数量的sqrt。