最終更新 2 months ago

修正履歴 9629b66ed82d318a1ae1001c28edf10fa39305aa

primes.py Raw
1import itertools
2
3def iter_primes():
4 # an iterator of all numbers between 2 and +infinity
5 numbers = itertools.count(2)
6
7 # generate primes forever
8 while True:
9 # get the first number from the iterator (always a prime)
10 prime = next(numbers)
11 yield prime
12
13 # this code iteratively builds up a chain of
14 # filters...slightly tricky, but ponder it a bit
15 numbers = filter(prime.__rmod__, numbers)
16
17for p in iter_primes():
18 if p > 1000:
19 break
20 print (p)