pythonfor-loopwhile-loophamming-codehamming-numbers

# How can I convert hamming number code in a while or for loop python

``````def is_hamming_numbers(x):
if x == 1:
return 1
if x % 2 == 0:
return is_hamming_numbers(x/2)
if x % 3 == 0:
return is_hamming_numbers(x/3)
if x % 5 == 0:
return is_hamming_numbers(x/5)
return 0

def hamming_numbers_sequence(x):
if x == 1:
return 1
hamming_numbers_sequence(x-1)
if is_hamming_numbers(x) == True:
print("%s" % x, end=' ')

print(is_hamming_numbers(7))
print(is_hamming_numbers(1))

hamming_numbers_sequence(24)
print()
``````

Hi, I need to print the hamming numbers but I can only do it with the if loop. How can I do it with a for or while loop?

Solution

• Something like this?

``````def is_hamming_numbers(x: int) -> bool:
if x == 1:
return True
if x % 2 == 0:
return is_hamming_numbers(x/2)
if x % 3 == 0:
return is_hamming_numbers(x/3)
if x % 5 == 0:
return is_hamming_numbers(x/5)
return False

for n in range(1, 25):
if is_hamming_numbers(n):
print(n)
``````