RosettaCodeData/Task/Hamming-numbers/Python/hamming-numbers-5.py

14 lines
279 B
Python
Raw Permalink Normal View History

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