您的位置:首页 > 其它

筛法求素数

2010-06-24 10:20 232 查看
石器时代的版本:



import math
l=[]
for i in xrange(2, 100000):
    if any(i%x==0 for x in l if x<=math.sqrt(i)):
        continue
    else:
        print i
        l.append(i)
# for p in l:
#     print p
print "amount :", len(l)













可以自己选择上限:



import sys
import math
high = int(sys.argv[1]) if len(sys.argv)==2 else 10000
l=[]
for i in xrange(2, 100000):
    if any(i%x==0 for x in l if x<=math.sqrt(i)):
        continue
    else:
        print i
        l.append(i)
for p in l:
    print p
print "amount:", len(l)














修改错误:



import sys
import math
high = int(sys.argv[1]) if len(sys.argv)==2 else 10000
l=[]
for i in xrange(2, 100000):
    if any(i%x==0 for x in l if x<=math.sqrt(i)):
        continue
    else:
        print i
        l.append(i)
print "amount:", len(l)


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: