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。
我正在 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。