Les nombres heureux

Ce défi est tiré de c0d1ngUP 2014

Les nombres sont parfois pourvus de qualificatifs surprenants. Il existe en effet des nombres heureux et des nombre malheureux. Pour savoir si un nombre est heureux, il faut calculer la somme des carrés de ses chiffres, et recommencer avec le résultat. Si on finit par tomber sur 1, alors le nombre est heureux. Sinon, il est malheureux.

Par exemple, le nombre 109 est heureux. En effet :
109 → 12+02+92 = 82 → 82+22 = 68 → 62+82 = 100 → 12+02+02 = 1

Par contre, 106 est malheureux. En effet :
106 → 12+02+62 = 37 → 32+72 = 58 → 52+82 = 89 → 8²+9² = 145 → 1²+4²+5² = 42 → 4²+2² = 20 → 2²+0² = 4 → 4² = 16 → 1²+6² = 37...

Le nombre 37 a déjà été obtenu, en début de séquence, on sait donc que la série 37, 58, 89, 145, 42, 20, 4, 16 va se répéter indéfiniment. Le nombre 1 ne sera donc jamais atteint.

Défi :

L'entrée du problème est la donnée de deux bornes mini et maxi. Il faut répondre en donnant la liste des nombres heureux compris entre ces deux bornes (incluses), par ordre croissant.

Testez votre code :

Par exemple, si les bornes données étaient mini=109 et maxi=141, il faudrait répondre en indiquant : (109, 129, 130, 133, 139)

Type de retour
Une séquence de nombres entiers
Entrées du problème
  • mini : 8962
  • maxi : 9189
Vous devez être connecté.e pour proposer une réponse au défi
Vous devez être connecté.e pour accéder aux forums.