Advertisement
anacrolix

Primes fast

Apr 6th, 2011
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.59 KB | None | 0 0
  1. import itertools
  2. import math
  3. import sys
  4.  
  5. def primes(n):
  6.     sofar = []
  7.     def isprime(p):
  8.         s = int(math.sqrt(p))
  9.         for q in sofar:
  10.             if q > s:
  11.                 break
  12.             if not p % q:
  13.                 return False
  14.         sofar.append(p)
  15.         return True
  16.     def tocheck():
  17.         yield 2
  18.         yield 3
  19.         for i in itertools.count(6, 6):
  20.             yield i - 1
  21.             yield i + 1
  22.     for i in tocheck():
  23.         if i > n:
  24.             break
  25.         if isprime(i):
  26.             yield i
  27.  
  28. for p in primes(int(sys.argv[1])):
  29.     print(p)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement