Nombres heureux

On considère un entier naturel \(n\) et on calcule la somme \(s\) des carrés des chiffres de \(n\). Par exemple si \(n = 32\) alors \(s = 9+4=13\). On recommence avec \(n=13\) et on obtient \(s=1+9=10\). On recommence avec \(n=10\) et on obtient \(s=1+0=1\). Si on recommence on obtient toujours \(1\). On démontre qu'en appliquant ce processus, soit on reste à \(0\) (si \(n=0\)), soit on arrive à \(1\) et on y reste, soit on arrive à \(4\) et on va reproduire la boucle \(4, 16, 37, 58, 89, 145, 42, 20, 4\).

En appliquant le processus décrit ci-dessus à un nombre \(n\), si on arrive à \(1\), on dit que le nombre \(n\) est heureux.

Écrire la fonction heureux qui prend en paramètre un entier n positif et renvoie True si le nombre est heureux et Falsesinon.

Indice

On pourra utiliser les fonctions str et int pour obtenir les chiffres à partir de l'écriture d'un nombre. Par exemple int(str(387)[1])est le nombre 8. Une autre possibilité est d'utiliser les opérateurs % et //.

Exemples
>>> heureux(32)
True
>>> heureux(58)
False
>>> heureux(0)
False
###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10
.128013s3o_;8bcdufvg/T0lyq n7AapS!r1Fmeh(P2=4:+twk%i95R*x)é6050j0G0P0y0T0r0b0u0i0r0y0b0b0L010P0T0z010406050b0k0F0F0y0C0s040A0d0r0k0_0d0v0u020y0F0z0f0u0W0G130C0t0k0G0b050o101214160~0z041u1B051E0o1E1G1B0~0j0T0m0.0:0=0@0H0T0n0H0r1U0H0P0|050)0h0r0G1P0;0?011T1V1X1V0P1%1)1#0P0h0d0j161$0C1C0P0H0.190b0z0y0v0@0K011+1R010l0+0G0v1h0G1#26282d1-2g1)2j0F2l040a0u0J0C0d0z0d0b0T1c1e0%240C0C0G0i2G1u2n0v1C0o222S0P201 210j2p0@1X0v2i2D1#1M1O0/1,2$0T2(0v1|1N1#0z2L1C2Q2S2}0 271e2.2e2?0C130r0|0u0D2P310}302o331-3537390K3c283e2Q2#013j0y38040u0c3n2R0~3q3h0@3t3v0u0M3z3p313r3F390V3J3B3L3D3s0d363u390#3Q3f321Q3i3V3k3w0w3!3C3%3E3)3X3w0g3-3S3/3U3W3G0U3^3g3`3N040D0q3 3$2/3{3*0D3b1v3d1D2{1u2,2V0j2Z3r0i1|2v0$1N1C2`0G2|4e4d3o054n0%4v40480R0|0%0l3J3#3r0Q394J3.480v0l0|0H0G0k2L0k0Y4O3_480{040I4!4D340|0v4*472e4%0Z0N3Q0u4_0u4K3T4F040T4I4x2R4{4P4,044.523w4|3`0d0|0L0L3J544#2e0F0T0|45595b4$0|4@59064`5w5i4+1-4~2L0P4W582}5y4:5A0i0|0E3u0b0G4^4`5q2e4~0Q1T1)5h5S3i4-5Y551-5d040B5g595H3r5l0|4c5G5Z0@0d4M04280j5$5j5!575~5z5^0|5+4/5/5m043I5p5%0@4%5t2}5v5x4_5@3s0|1t5-6l5)5,5?6d015:045o6h6j6k6u4~0l3V625I3E0|0i6G3r5_0|2;6L3T0v0h6n2W673T4%4)6c5 6I616!63014=6g3d6i6A5R6u0v6n6Q5c0|0O6s3d5.6R6T4 0v0P6W3`6Y734Q6J764;0|0Z6@485)0X0X7d5k693m5u6/6l6=6%6t6#016r7i606o6z6:7s4~507v6$5F6|6q5e6{3o6}3`6w5=4e6u6f5Q6j6l5B0(5E7D010R5K040p0C1r7S7L4E0|5C7X6p6C7#5M0,5P5u1u4A4u4f7|0o4i1u0P4k812X2T1{1}2V0y1(7~4i1A4C6H012L0F0e0l0y0R0G0e0H0c0|1m1o1q1s0u6,4y1H3e1B0x0m2M0u1)0-2B0!0C0y0P4V0C0-4z4o040S7`8S0u0(4{7{040o0o8V4B8X0P0u0k2(0u6E0v2N0T1d0u1q0T0.3u0i0k1)8G0y0u0b0d121*0%0-0i140C0!0-970.1T0l0l2L9d1*8R4B588!5t1K4q2-3`1/1W1Y1!8f3r2r2i2k0|2x0A0i0C0`8+0J0s221d4J4t8f2~4e8!7U4G0G512 6u5`4{6(8g4R6n942u0e992K1s791-759%3M5#9@6X7b8y3A5w7o9*957Y7u7:7s6w6y6-9 6C0|5V2h7Y7p7F7K7H5*7J536la79;6e5s7*aa7s7p93a2a56)a47r6)av9+7^aB8g5)0O7Y9?9Zau9_aMaz0|8U9`7M6944ap6*7baX7f7haT486w7l7y7T6;aO7G6uaAa/aN7qa=aQ8#8%ay8g7Na83o6.7+5T7-7W0Cahama-04aw2u3Q3R6)4~4HaX9#aX9)044U4W4V4Za%7a4(bka.4y7Q9|7*9V4 9Ya^9(bvb87s6ral5a6uaobr9=ar7m6AbA7.b67Y7!5L5NaFa97zbfac5WbZai7;0|7%7)bNaq049}0}7nabbBafbFbKbH7I7Y7NaX7RbQ6/6B7Ab45DbUa|3rbW7$7(b)9~bRb^0G1XbCb*a?b7b|a_5fb 696baP8gc2a+c4bSb5cob25JbX7@asb#8g4~cj5Oc1bPcyb@cna35eb`baaE9-9a9:b/aYbtc!agcN047c7_0o9U1H4g7 4r0~7 0(0*0,04.