满意答案
turlf
2013.03.23
采纳率:46% 等级:8
已帮助:661人
如果要追求一下速度的话,可以试试这个(求1千万内素数12.58秒).
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
def getPrime(maxNum):
aList = [x for x in range(0,maxNum)]
prime = []
for i in range(2,len(aList)):
if aList[i] != 0:
prime.append(aList[i])
clear(aList[i],aList,maxNum)
return prime
def clear(aPrime,aList,maxNum):
for i in range(2,int((maxNum/aPrime)+1)):
if not aPrime*i>maxNum-1:
aList[i*aPrime]=0
print getPrime(100)
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
00分享举报