20 lines
559 B
Python
20 lines
559 B
Python
import itertools
|
|
|
|
def iter_primes():
|
|
# an iterator of all numbers between 2 and +infinity
|
|
numbers = itertools.count(2)
|
|
|
|
# generate primes forever
|
|
while True:
|
|
# get the first number from the iterator (always a prime)
|
|
prime = numbers.next()
|
|
yield prime
|
|
|
|
# this code iteratively builds up a chain of
|
|
# filters...slightly tricky, but ponder it a bit
|
|
numbers = itertools.ifilter(prime.__rmod__, numbers)
|
|
|
|
for p in iter_primes():
|
|
if p > 1000:
|
|
break
|
|
print p |