Python 2.7 でふるいを使用して、すべての素数の合計を取得しようとしています。ただし、プログラムを実行すると、毎回 0 になります。なぜこれが起こっているのか分かりません。
import math,time
start=time.clock()
def primesieve(limit):
final=0
a=[True]*limit
a[0]=a[1]=False
for i,isprime in enumerate(a):
if isprime:
for n in xrange(i,limit,i):
a[n]=False
for i in xrange(limit):
if a[i]:
final=final+i
return final
print primesieve(2000000)
elapsed=time.clock()-start
print elapsed