Print all Tetradic Numbers in Python
Enter lower bound: 1
Enter upper bound: 999
1, 8, 11, 88, 101, 111, 181, 808, 818, 888,
from math import copysign
def main():
"""
Prints all the Tetradic numbers within a given range.
"""
BASE = 10
a = int(input("Enter lower bound: "))
b = int(input("Enter upper bound: "))
for i in range(a, b + 1):
if is_tetradic(i, BASE):
print(i, end=", ")
print()
def is_tetradic(number: int, base: int):
"""
Checks if a number is a Tetradic number or not.
"""
reversed = 0
n = abs(number)
while n != 0:
unit_digit = n % base
if unit_digit != 0 and unit_digit != 1 and unit_digit != 8:
return False
reversed = reversed * base + unit_digit
n //= base
reversed = int(copysign(reversed, number))
return reversed == number
if __name__ == "__main__":
main()