Python - 素数

Python - prime numbers

我正在 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。有人能发现错误吗?

您的 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

对于非常小的数字,这会很好,尽管您实际上只需要检查 num 的 sqrt。