You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 lines
559 B
Python
20 lines
559 B
Python
5 years ago
|
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
|