- 论坛徽章:
- 0
|
用筛选法求质数,1000000以内的用了0.765s.
import time
start_time=time.time()
myfile=open('primes.txt','w')
NUM =1000000
prime_num = [i for i in xrange(NUM+1)]
for i in xrange(2,int(NUM**0.5)+1):
if prime_num[i]:
start = i**2
step = i
prime_num[start::step] = ((NUM - start)/step + 1)*[0]
print >> myfile,[i for i in prime_num if prime_num[i]!=0]
myfile.close()
end_time=time.time()
print "End!\nUse Time:%f s" % (end_time-start_time) |
|
|