Número feliz

Un número feliz es un número que produce un 1 al sumar repetidamente el cuadrado de sus dígitos. Si tal proceso da como resultado un ciclo interminable que es 4, entonces el número se considera un número infeliz.

Cálculo de ejemplo:

139 = 1^2 + 3^2 + 9^2 = 1 + 9 + 81 = 91
91 = 9^2 + 1^2 = 81 + 1 = 82
82 = 8^2 + 2^2 = 64 + 4 = 68
68 = 6^2 + 8^2 = 36 + 64 = 100
100 = 1^2 + 0^2 + 0^2 = 1 + 0 + 0 = 1

Nos detenemos en 1 (porque continuar producirá un ciclo interminable); por lo tanto, 139 es un número feliz.

67 = 6^2 + 7^2 = 36 + 49 = 85
85 = 8^2 + 5^2 = 64 + 25 = 89
89 = 8^2 + 9^2 = 64 + 81 = 145
145 = 1^2 + 4^2 + 5^2 = 1 + 16 + 25 = 42
42 = 4^2 + 2^2 = 16 + 4 = 20
20 = 2^2 + 0^2 = 4 + 0 = 4 

Nos detenemos en 4 (porque continuar producirá un ciclo interminable); por lo tanto, 67 es un número infeliz.

Crea una función que acepte un número y determine si el número es un número feliz o no. Devuelve True si lo es y False en caso contrario.

Ejemplos

is_happy(67) ➞ False

is_happy(89) ➞ False

is_happy(139) ➞ True

is_happy(1327) ➞ False

is_happy(2871) ➞ False

is_happy(3970) ➞ True

Notas

  • Pista: Tu bucle termina si el valor de n es 1 o 4.
  • Alternativamente, puedes resolver este desafío mediante un enfoque recursivo.
  • Puedes encontrar una versión recursiva de este desafío mediante este enlace.