2018-06-22 20:57:24 +00:00
|
|
|
from heapq import merge
|
|
|
|
|
from itertools import tee
|
2013-04-10 21:29:02 -07:00
|
|
|
|
2018-06-22 20:57:24 +00:00
|
|
|
def hamming_numbers():
|
|
|
|
|
last = 1
|
|
|
|
|
yield last
|
2013-04-10 21:29:02 -07:00
|
|
|
|
2018-06-22 20:57:24 +00:00
|
|
|
a,b,c = tee(hamming_numbers(), 3)
|
2013-04-10 21:29:02 -07:00
|
|
|
|
2018-06-22 20:57:24 +00:00
|
|
|
for n in merge((2*i for i in a), (3*i for i in b), (5*i for i in c)):
|
|
|
|
|
if n != last:
|
|
|
|
|
yield n
|
|
|
|
|
last = n
|