繁体   English   中英

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循环一起使用, for不要使用if语句和no 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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM