我已經寫了下面的代碼塊來計算在這種情況下在一定數量-2000000以下的所有素數的總和,但是這需要相當長的一段時間執行; 20秒:在Python中給定數字下面的素數總和
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))
所以我想知道是否有辦法讓我的代碼更有效率。對於同樣的建議,我將不勝感激。此外,我寧願你提供更多的基本解決方案,因爲我是初學者,並提供相同的邏輯。非常感謝!
http://stackoverflow.com/q/2068372/3651800 –
的副本注意修改代碼中的縮進嗎?它不能按原樣複製。 –