Print all SuperD Numbers in Python
Enter lower bound: 1
Enter upper bound: 999
Enter d: 3
261, 462, 471, 481, 558, 753,
def main():
"""
Prints all the Super-D numbers within a given range.
"""
BASE = 10
a = int(input("Enter lower bound: "))
b = int(input("Enter upper bound: "))
d = int(input("Enter d: "))
for i in range(a, b + 1):
if is_super_d(i, d, BASE):
print(i, end=", ")
print()
def is_super_d(number: int, d: int, base: int):
"""
Checks if a number is a Super-D number or not.
"""
if number <= 0:
return False
super_number = d * (number**d)
d_exponent = base**d
d_digits = 0
for _ in range(1, d + 1):
d_digits = d_digits * base + d
while super_number != 0:
end_digits = super_number % d_exponent
if end_digits == d_digits:
return True
super_number //= base
return False
if __name__ == "__main__":
main()