Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions maths/is_palindrome_number.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
def is_palindrome_number(number: int) -> bool:
"""
Checks if a given integer is a palindrome without converting it to a string.
A palindrome is a number that reads the same backward as forward.
Negative numbers are not considered palindromes by this definition.

Args:
number: The integer to check.

Returns:
True if the number is a palindrome, False otherwise.

Examples:
>>> is_palindrome_number(121)
True
>>> is_palindrome_number(123)
False
>>> is_palindrome_number(10)
False
>>> is_palindrome_number(12321)
True
>>> is_palindrome_number(7)
True
>>> is_palindrome_number(0)
True
>>> is_palindrome_number(-121)
False
"""
# Negative numbers are not considered palindromes
if number < 0:
return False

original_number = number
reversed_number = 0

while number > 0:
# Get the last digit
digit = number % 10

Check failure on line 39 in maths/is_palindrome_number.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (W293)

maths/is_palindrome_number.py:39:1: W293 Blank line contains whitespace
# Build the reversed number
reversed_number = (reversed_number * 10) + digit

Check failure on line 42 in maths/is_palindrome_number.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (W293)

maths/is_palindrome_number.py:42:1: W293 Blank line contains whitespace
# Remove the last digit from the original number
number //= 10

# Compare the original with the reversed number
return original_number == reversed_number
Loading