Перейти к содержимому

Number Palindrome Checker

Проверьте, является ли число палиндромом, найдите палиндромы в диапазоне и откройте для себя интересные палиндромные числа.

12321
это палиндром
Перевёрнуто: 12321

Об этом инструменте

Числовой палиндром — это число, которое читается одинаково в обоих направлениях, например 121 или 3443. Проверятель числовых палиндромов позволяет мгновенно проверить, является ли любое число палиндромом, исследовать диапазоны палиндромов, чтобы увидеть закономерности, и открыть для себя увлекательные математические свойства этих симметричных чисел.

Пользоваться инструментом просто: введите одно число, чтобы проверить, является ли оно палиндромом, или укажите диапазон, чтобы найти все палиндромы в нём. Вы можете изучить, как палиндромы распределены в различных диапазонах чисел, от небольших целых чисел до больших значений, и получить представление об их частоте и математических характеристиках.

Этот инструмент полезен для студентов, изучающих теорию чисел, математиков, исследующих числовые закономерности, и для всех, кто интересуется необычными свойствами чисел. Хотя проверятель работает с любым положительным целым числом, обработка очень больших чисел может занять немного больше времени, но фундаментальный принцип остаётся неизменным: истинные палиндромы идеально отражаются вокруг своих центральных цифр.

Часто задаваемые вопросы

Реализация кода

def is_palindrome(n) -> bool:
    """Check if a number (int or string) is a palindrome."""
    s = str(n)
    return s == s[::-1]

def next_palindrome(n: int) -> int:
    """Find the next palindrome after n."""
    n += 1
    while not is_palindrome(n):
        n += 1
    return n

def find_palindromes_in_range(start: int, end: int) -> list[int]:
    """Find all palindrome numbers in range [start, end]."""
    return [i for i in range(start, end + 1) if is_palindrome(i)]

# Check specific numbers
for num in [12321, 12345, 99999, 100001, 1234321]:
    result = "✓ palindrome" if is_palindrome(num) else "✗ not palindrome"
    print(f"{num}: {result}")

# Find palindromes in range
print("\nPalindromes 100-200:", find_palindromes_in_range(100, 200))
print("Next palindrome after 999:", next_palindrome(999))
print("Next palindrome after 12345:", next_palindrome(12345))

# Lychrel number check (reverse and add)
def reverse_and_add(n: int, steps: int = 50) -> tuple[bool, int]:
    for _ in range(steps):
        n += int(str(n)[::-1])
        if is_palindrome(n):
            return True, n
    return False, n

print("\n196 Lychrel test:", reverse_and_add(196, 100)[0])  # Famous non-palindrome

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.