Nombre de zéros de n! (2)
On rappelle que, pour \(n\) un entier naturel, la factorielle de \(n\) se note \(n!\) et se définit comme le produit des entiers de \(1\) à \(n\).
- \(0! = 1\), comme un produit vide.
- \(1! = 1\)
- \(2! = 1×2 = 2\)
- \(3! = 1×2×3 = 6\)
- \(11! = 1×2×3×4×5×6×7×8×9×10×11 = 39916800\)
- \(42! = 1405006117752879898543142606244511569936384000000000\)
On constate que
- \(3!\) se termine par aucun zéro.
- \(11!\) se termine par 2 zéros.
- \(42!\) se termine par 9 zéros.
Construire une fonction, tel que nb_zeros_factorielle(n) renvoie le nombre de zéros se trouvant à la droite dans l'écriture décimale de \(n!\), pour \(n\) entier inférieur à \(10^{18}\).
Exemples
>>> nb_zeros_factorielle(3)
0
>>> nb_zeros_factorielle(11)
2
>>> nb_zeros_factorielle(42)
9
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
.128013s3_èuf^vIy n7aêS1me(P24C:jtwi][h*)6Oo;bcdgx/0làqAp!.rL-,}=+zk5R{é050P0t0B0o0D0U0b0l0O0U0o0b0b0*010B0D0Y010406050b0f0s0s0o0#0k040q0L0U0f150L0m0l020o0s0Y0M0l0/0t1f0#0W0f0t0b050S1c1e1g1i1a0Y041G1N051Q0S1Q1S1N1a0P0D0i0}0 11130G0D0Q0G0U1*0G0B18050^0N0U0t1#1012011)1+1-1+0B1?1^1;0B0N0L0P1i1=0#1O0B0G0}1l0b0Y0o0m130w011`1%010g0`0t0m1t0t1;2i2k2p1|2s1^2v0s2x040a0l0v0#0L0Y0L0b0D1o1q0?2g0#0#0t0O2S1G2z0m1O0S2e2(0B2c2b2d0P2B131-0m2u2P1;1Y1!0~1{2=0D2@0m281Z1;0Y2X1O2$2(391b2j1q2}2q320#1f0U180r2#3d193c2A3f1|3h3j180w3n2k3p2$2;013u0o3k040c3y2%1a3B3s133E3G0x3J3A3d3C3P180.3S3L3U3N3D0L3i3F180J3Z3q3e1$3t3(3v040n3S1P371G2{2+0P2/3C0O282H0=1Z1O360t383o3_420?4a3r3:130-180?0g3_3M4h010C180l4n3#4p0m0g180m0N0d0,0t2M0b0d0g0o2Z3(0D0t0U1^4u4g2~0117040u4Q3/4S0m4z4X3C4U0I0z3Z0l4,4t4o4Z182X1c0U0^0B3S4.4v4S0L180*4`3.3C0s0D180T4+4-523$4!040Y0f0D110d3Y1H3o4{4R2q4~04505k3z5m4Y2q543X584,5a4p4j040C1)4P5s2%5u3V185e5g4G5j395K3$5p024@0M5r5R5B4:040m4$3$4U4*5I194-5.5S4w4;1E0f4@0o4_5,5:4}180+5Y5l5!3g4#5{621|5p0S0S514/635d5f5h5Q3o065/596c3t5M6f5P6b4|5o180H605t66135x046h3z6j6l6s1|5D2X0B0f0#5%656m3O5=4?4^3-0S4d493`6X0S3}1G0B3 6$2-2)27292+0o1@6Z3}1M4f5v1|2X0s4H0o0-0t0d0G0c181y1A1C1E0l5+3b1T3p1N0y0@0B1_0s0;2e430l0b1_0Q0;0m0;0#3F5g1_2O6L0l0P7j4E542@0#0l0 0l0i3F0f5_0D1p5|2q1g2R0G1f7g0R18090u0Y090I3S0%0o1Y767z000f1q2u154E7P1|7R2e7U0t7W047Y0m7#3S0!1P7c1j0D7?137^7T5_7{7X0u7 7$5{1E0B0l7.0l7:4M7F2v6K2X0U0(8m8j6y01897`7|7Y7!8g5R8l320s0N2X0l48544E8u7H0g3=5@1_2U0$0t0Q2u0P8K0P1p2@7G007{2O0b2k8j2U8x8z8b8B7Z805{0P2k0|7H7A421u2P2R7N7/1q4I2Z0t7y8M8o7z1_8;0#7S8A8d0m0Z8_39827b1X1Z3C8=7V7X0F0i0d0Y8e0Z0I0l0*0l091I0d0:0-0*0r0)0h0:09300g0B0k0)9F0U0g0U0L3(9F0g7t0O0:0m0)0:0Y0h0-9V090#9Y9!7F9E099X9Z9#099%4J9*9,0Y9;9?9}7F0+9W9@9~a09)9+9-0h0wa5aba8aaa79$9(a2ag0cajana9090O8$0B0b090E3|461a5@3p1-040$0o7m0L1e1_0b001g0#0p7g0l1w0B0L0f8}777g3i770b1p8j0m5@0|0V8L1g157F0P7-3e4E0^300l7t0m0Q9oaI1aaI9f9h8?8d9{akaoa10o9,0Nat9^9m5l8i7GaL2j0#7;8m0m150e8#9e6P8y9g7_b87}0u0obj5t2{5g0;a;7Fb6bA9ubC0NbF2%0!0l0X0i2Y2K0k7k0m8u7O0Y998j2Q1u1^2Gbs0l4I0D8K056W04aL690l0N1Gb^b20D3p0SaG6?7e8~8%1_7.1_8R0m2Z94bYb!839q2|4p1~1,1.1:6@3C2D2u2w182J0q0O9g0Y8j0vbZ0G1p3_486@3a4bb^8x5D4l5(4p4r044t5,8x4x187J1m7McFcUbx4U4Wc$6G6Q5$cP4S4U0(6r5n6n5dc.2q4(796i8xcR5.c_1|0b0P1801d61y0m0i0L4Mbm7I7Kc!1q0Y7(7*1D9d0l9k3-bxd34s4-0%dn8m0b8j8l8n7=8q6L4Ndpc+01drcSdt8Ldwdy1q8H8J7w6`8odFc?13dI5.d6015z873D6R5@6T6OdG5p6w5J8x6A575,6E5Abx5c5N5h0Yc=6^13d-d~5Lc^d?d0bx5D5F2te25b6o5O9yeb4p5U5Wd.cScV643bc%18c|6D6kd^dG5c4=d)5_eg5}045 eA6d6N5Zbx686ad+dVd%6eeed}e5etemeOd|eE676uekd$d`d#cM5=8reG61d_d(5^5`391a6V432(cHaD0i840Kdhb)7maP4E0ib=dm0O7fcb1pceb%aZ7F0L0N7g0mf38~0;908,937Ofk0U0eaV2ub:4J7g6L0|9b4E0|8:bx9t8cbC9kbR048u1f5g0l0oa!2Qf40L0t0g2s0O4Mbs0|0N30aN0DfN0R0l1C867n0}3F0O8Tb/0obW0O9d0|97aY9g4N1^0b9o1W1R040j0Uft0f8!aL0Aa!aVf=db7Fca7G5gaV2UdP4=8LdSfz0!gq0l0y8*dx0laY0f0Afb0|2,0e0|1n2tg0c20?a|0{04.
Indice 1
- Il n'est pas possible de construire un tableau de tous les résultats.
- Il faut penser décomposition en facteurs premiers de \(n!\).
- Une divisibilité par \(10\) signifie la présence de \(2\) et \(5\) dans la décomposition.
- Le nombre de zéros d'un nombre est le minimum de l'exposant de 2 et de celui de 5 dans la décomposition en facteurs premiers du nombre.
- Pour \(n!\), le nombre de zéros est l'exposant de 5 qui est plus petit que l'exposant de 2.
Indice 2
- Combien y a-t-il de multiples de 5 de \(1\) à \(n\) ? Chacun apporte un zéro.
- Combien y a-t-il de multiples de 25 de \(1\) à \(n\) ? Chacun apporte un zéro supplémentaire.
- Combien y a-t-il de multiples de 125 de \(1\) à \(n\) ? Chacun apporte un zéro supplémentaire.
- Quand faut-il arrêter cette liste ? Et comment la générer ?
Indice 3
- On utilisera une variable
puiss_5qui sera une puissance de 5. - La puissance suivante s'obtient avec
puiss_5 *= 5. - Il y a
n // kmultiples de \(k\) de \(1\) à \(n\), par exemple :- Il y a
42 // 5 = 8multiples de 5 de \(1\) à \(42\) : \(5\), \(10\), \(15\), \(20\), \(25\), \(30\), \(35\) et \(40\). - Il y a
42 // 25 = 1multiple de 25 de \(1\) à \(42\) : \(25\). - Il y a
42 // 125 = 0multiple de 125 de \(1\) à \(42\).
- Il y a
- Il y a \(8+1+0=9\) zéros à la fin de \(42!\)
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)