【发布时间】:2020-08-02 12:14:42
【问题描述】:
sum_ans=17
for i in range(11,2000000):
for j in range(2,int(i**0.5)):
if i%j==0:
break
else:
sum_ans+=i
print(sum_ans)
我返回的代码给出了答案 143064094781,正确答案是 142913828922,但我不知道我哪里出错了。所以谁能帮帮我。
【问题讨论】:
-
我认为 i**0.5 + 1 应该可以完成这项工作,因为 range() 的第二个参数是独占的。
-
您的
17包括 2,这是唯一的偶数。这意味着您只需要尝试iodd: 11, 13, 15, ... 因为所有大于 11 的偶数都是合数。鉴于i是奇数,无需测试j== 2;从 3 开始,再次只使用奇数:3、5、7、9、...
标签: python-3.x primes