File tree Expand file tree Collapse file tree 1 file changed +57
-0
lines changed
Expand file tree Collapse file tree 1 file changed +57
-0
lines changed Original file line number Diff line number Diff line change 1+ """
2+ Check if a given integer is a palindrome mathematically.
3+ """
4+
5+
6+ def is_palindrome_number (number : int ) -> bool :
7+ """
8+ Checks if a given integer is a palindrome without converting it to a string.
9+ A palindrome is a number that reads the same backward as forward.
10+ Negative numbers are not considered palindromes by this definition.
11+
12+ Args:
13+ number: The integer to check.
14+
15+ Returns:
16+ True if the number is a palindrome, False otherwise.
17+
18+ Examples:
19+ >>> is_palindrome_number(121)
20+ True
21+ >>> is_palindrome_number(123)
22+ False
23+ >>> is_palindrome_number(10)
24+ False
25+ >>> is_palindrome_number(12321)
26+ True
27+ >>> is_palindrome_number(7)
28+ True
29+ >>> is_palindrome_number(0)
30+ True
31+ >>> is_palindrome_number(-121)
32+ False
33+ """
34+ # Negative numbers are not considered palindromes
35+ if number < 0 :
36+ return False
37+
38+ original_number = number
39+ reversed_number = 0
40+
41+ while number > 0 :
42+ # Get the last digit
43+ digit = number % 10
44+
45+ # Build the reversed number
46+ reversed_number = (reversed_number * 10 ) + digit
47+
48+ # Remove the last digit from the original number
49+ number //= 10
50+
51+ # Compare the original with the reversed number
52+ return original_number == reversed_number
53+
54+
55+ if __name__ == "__main__" :
56+ import doctest
57+ doctest .testmod ()
You can’t perform that action at this time.
0 commit comments