Print all Palindrome Numbers in Python
Enter lower bound: 100
Enter upper bound: 199
101, 111, 121, 131, 141, 151, 161, 171, 181, 191,
from math import copysign
def main():
"""
Prints all the Palindrome 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_palindrome(i, BASE):
print(i, end=", ")
print()
def is_palindrome(number: int, base: int):
"""
Checks if a number is a Palindrome number or not.
"""
reversed = reverse_number(number, base)
return reversed == number
def reverse_number(number: int, base: int):
"""
Returns the reverse of a number.
"""
reversed = 0
n = abs(number)
while n != 0:
unit_digit = n % base
reversed = reversed * base + unit_digit
n //= base
return int(copysign(reversed, number))
if __name__ == "__main__":
main()