[英]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.