Number Palindrome Checker
Controlla se un numero è un palindromo, trova i palindromi in un intervallo e scopri interessanti numeri palindromici.
Informazioni sullo strumento
Un palindromo numerico è un numero che si legge allo stesso modo in entrambi i sensi, come 121 o 3443. Il Verificatore di Palindromi Numerici ti permette di verificare istantaneamente se qualsiasi numero è un palindromo, esplorare intervalli di palindromi per vedere i modelli e scoprire affascinanti proprietà matematiche di questi numeri simmetrici.
Usare lo strumento è semplice: inserisci un singolo numero per verificare se è un palindromo, oppure specifica un intervallo per trovare tutti i palindromi al suo interno. Puoi esaminare come i palindromi sono distribuiti in diversi intervalli numerici, dai piccoli numeri interi ai valori più grandi, e ottenere una comprensione della loro frequenza e delle loro caratteristiche matematiche.
Questo strumento è utile per gli studenti che imparano la teoria dei numeri, per i matematici che esplorano i modelli numerici e per chiunque sia curioso delle proprietà strane dei numeri. Sebbene il verificatore funzioni con qualsiasi numero intero positivo, i numeri molto grandi potrebbero richiedere un po' più tempo per l'elaborazione, ma il principio fondamentale rimane lo stesso: i veri palindromi si riflettono perfettamente intorno alle loro cifre centrali.
Domande Frequenti
Implementazione del Codice
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-palindromeComments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.