0010. 素数和
* * * *
拉格朗日计划
* * * *
素数和

所有小于$10$的素数之和是$2+3+5+7=17$。求所有小于两百万的素数之和。

本题难度:



解答

我们可以用筛法来生成所有两百万以内的素数再求和得到结果$142913828922$。

target=2000000
d=[0]*target
n=2
while n<target:
    for i in range(n+n,target,n):
        d[i]+=1
    n+=1
    while n<target and d[n]>0:
        n+=1
print sum(k for k in range(target) if d[k]==0)-1