gpt4 book ai didi

python - 使用 Python 和 Eratosthenes 筛法计算 200 万以内的质数总和,如何更快更有效地做到这一点?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:17:04 24 4
gpt4 key购买 nike

<分区>

这会在 ~0.7 秒(2.2GHz i7 四核)内完成工作,但我知道它可以更快。我认为学习如何加快速度可以教会我很多关于 Python 的知识。我该如何加快速度?如何提高内存效率? (不使用多处理,仍然使用埃拉托色尼筛法)

from math import sqrt
import time

def sum_range(n):
A = [1 if i > 1 else 0 for i in xrange(n+1)]
for i, p in enumerate(A):
if A[i] and i <= int(sqrt(n)):
for j in xrange(i+i, n+1, i):
A[j] = 0
sum = 0
for i, p in enumerate(A):
if A[i]:
sum += i
return sum

if __name__ == '__main__':
t0 = time.time()
sum = sum_range(1000*1000*2)
t1 = time.time()
print "The sum is {} and it took {} seconds to do this".format(sum, t1-t0)

郑重声明,这不是任何类型的家庭作业问题。单纯只是出于好奇。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com