我的python 2.7代码已经基于Eratosthenes prime筛子编码,在一定限度内找到所有素数,在找到超过十亿的素数时会出现内存错误。在我的代码中,我只使用一个列表来存储对应于每个数字的true / false值(当它是素数时为true,否则为false)。下面是我的代码,`
def primeSieve(limit):
sieve = [True] * ((limit+1)/2)
for i in range(3, int(limit**0.5)+1, 2):
if sieve[i/2]:
sieve[(i*i)/2::i] = [False] * ((limit-i*i-1)/(2*i)+1)
return [2] + [2*i+1 for i in range(1, (limit+1)/2) if sieve[i]]
print primeSieve(100000000)
如何修改我的代码以找到超过十亿的素数?谢谢。