#!/usr/bin/python
# encoding: utf-8
import itertools
import time
N = 2000000
def clear(aPrime,aList,maxNum):
for i in xrange(aPrime, maxNum, aPrime):
aList[i] = 0
def allPrime(maxNum):
aList = range(0,maxNum)
prime = []
for i in xrange(2,N):
if aList[i] != 0:
prime.append(i)
clear(i, aList, maxNum)
return prime
t0 = time.time()
primelist = allPrime(N)
print len(primelist ),
print '[%s .. %s]' %(
','.join(map(str,
primelist [:10])),
','.join(map(str,
primelist [-10:])),
)
print "Process usage", time.time()-t0
这是一段筛选法生成素数的代码,请参考