Menu
CoddyTech

Happy Number

Partez d’un entier positif n et remplacez-le par la somme des carrés de ses chiffres, encore et encore. Par exemple, 12 devient 1² + 2² = 5. Si ce processus atteint 1, n est un nombre heureux ; sinon, il tourne indéfiniment en boucle parmi des nombres qui n’incluent jamais 1. Renvoyez true si n est heureux et false dans le cas contraire.

Fonction

isHappy(n: integer) → boolean
ninteger
l’entier positif à tester
Renvoieboolean
vrai si la répétition de la somme des carrés des chiffres atteint 1, faux si elle boucle indéfiniment

Contraintes

  • 1 ≤ n ≤ 231-1

Exemples

Entrée
n = 7
Sortie
true
Explication
7 devient 49, puis 4² + 9² = 97, puis 130, puis 10, puis 1. Le processus atteint 1, donc 7 est heureux.

lock icon+16 tests cachés à la soumission

challenge icon

Pour aller plus loin

Comment compter rapidement les nombres heureux de 1 à 10^6, en réutilisant les résultats pour les nombres inférieurs à 1000 au lieu de reprendre chaque parcours depuis le début ?

Réinitialiser le code
def isHappy(n):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Cas 3

Entrée

n = 7

Attendu

true