【发布时间】:2016-09-11 20:10:59
【问题描述】:
我已经编写了以下代码块来计算低于某个数字的所有素数的总和 - 在这种情况下准确地说是 2 000 000,但是执行需要相当长的时间; 20 秒:
def summation_of_primes_below_n(n):
list = []
sum = 0
for i in range(2, n):
if checks_if_prime(i) == True:
list.append(i)
return list
for j in list:
sum = sum + j
return sum
def checks_if_prime(n):
if n == 2:
return True
import math
for i in range(2, math.ceil(math.sqrt(n))+1):
if n%i == 0:
return False
elif i == math.ceil(math.sqrt(n)):
return True
print(summation_of_primes_below_n(2000000))
所以我想知道是否有办法让我的代码更有效率。我将不胜感激适当的建议。另外,我希望您提供更多基本解决方案,因为我是初学者并提供相同的逻辑。非常感谢!
【问题讨论】:
-
介意修改代码中的缩进吗?它不能按原样复制。
标签: python python-3.x primes