Menu
CoddyTech

Happy Number

Empieza con un entero positivo n y reemplázalo una y otra vez por la suma de los cuadrados de sus dígitos. Por ejemplo, 12 se convierte en 1² + 2² = 5. Si este proceso llega a 1, n es un número feliz; de lo contrario, da vueltas para siempre por números que nunca incluyen 1. Devuelve true si n es feliz y false si no lo es.

Función

isHappy(n: integer) → boolean
ninteger
el entero positivo que se va a comprobar
Devuelveboolean
true si repetir la suma de los cuadrados de los dígitos llega a 1, false si entra en un bucle infinito

Restricciones

  • 1 ≤ n ≤ 231-1

Ejemplos

Entrada
n = 7
Salida
true
Explicación
7 se convierte en 49, después 4² + 9² = 97, después 130, después 10 y después 1. El proceso llega a 1, así que 7 es feliz.

lock icon+16 pruebas ocultas al enviar

challenge icon

Para ir más allá

¿Cómo contarías rápidamente los números felices del 1 al 10^6, reutilizando las respuestas para los números menores que 1000 en lugar de recorrer cada número inicial desde cero?

Restablecer código
def isHappy(n):
    # Escribe el código aquí
Casos de prueba

Caso 1

Caso 2

Caso 3

Entrada

n = 7

Esperado

true