计算200万以下的所有素数之和

时间:2020-08-21 16:46:02

标签: python algorithm

当我在2,20的范围内测试它时,它的价值非常大,而花费200万的时间却很多。 有什么问题吗?

i=2
sum=0
for a in range(2,2000001):
     for i in range (2,a):
        if a%i==0:   
            break
        else:
            sum=sum+a
print (sum)

1 个答案:

答案 0 :(得分:1)

您可以使用SymPy使用Eratosthenes筛子获得质数,然后使用sum()添加它们。

要点安装SymPy,请在终端中使用pip命令:

pip install sympy

访问其installation page以查看其他安装方法。

SymPy documentation for prime number related functions说明了如何使用其各种功能。

这个简单的代码将完成您想要的:

from sympy import sieve
sieve.extend(2000000)
print(sum(sieve._list))

并打印:

142913828922