Menu
CoddyTech

Happy Number

Parti da un intero positivo n e sostituiscilo ripetutamente con la somma dei quadrati delle sue cifre. Ad esempio, 12 diventa 1² + 2² = 5. Se questo processo raggiunge 1, n è un numero felice; altrimenti continua a girare all'infinito attraverso numeri che non includono mai 1. Restituisci true se n è felice e false se non lo è.

Funzione

isHappy(n: integer) → boolean
ninteger
l'intero positivo da testare
Restituisceboolean
vero se ripetere la somma dei quadrati delle cifre raggiunge 1, falso se entra in un ciclo infinito

Vincoli

  • 1 ≤ n ≤ 231-1

Esempi

Input
n = 7
Output
true
Spiegazione
7 diventa 49, poi 4² + 9² = 97, poi 130, poi 10, poi 1. Il processo raggiunge 1, quindi 7 è felice.

lock icon+16 test nascosti all’invio

challenge icon

Per approfondire

Come conteresti rapidamente i numeri felici da 1 a 10^6, riutilizzando le risposte per i numeri inferiori a 1000 invece di ripartire da zero per ogni numero?

Ripristina il codice
def isHappy(n):
    # Scrivi il codice qui
Casi di test

Caso 1

Caso 2

Caso 3

Input

n = 7

Atteso

true