Nombre de zéros à la fin d'un entier
On souhaite avoir une fonction nb_zeros qui détermine le nombre de zéros à la fin de l'écriture décimale d'un entier \(n>0\), très grand.
Méthode
On s'interdit, ici, d'utiliser la fonction de conversion str. Cette méthode est totalement inefficace avec des nombres très grands.
On demande plutôt de compter combien de fois on peut diviser un nombre par \(10\) avec un reste égal à zéro.
Par exemple,
- \(42000 = 4200×10 + 0\),
- \(4200 = 420×10 + 0\),
- \(420 = 42×10 + 0\),
- \(42\) n'est pas divisible par \(10\).
On a pu diviser \(42000\) trois fois par \(10\) avec un reste égal à \(0\). Ce nombre se finit donc par 3 zéros.
Exemples
>>> nb_zeros(42000)
3
>>> nb_zeros(3210)
1
>>> nb_zeros(282475249)
0
>>> nb_zeros(7**10000)
0
>>> nb_zeros(7**10000 * 1000)
3
Pour information,
- \(7^{10} = 282475249\) finit sans aucun zéro.
- \(7^{10000}\) est un nombre très grand qui finit sans aucun zéro.
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
.65038.128013.9875s3_8èufvIy n7aêSû1me(P24V:twiDhE)6Oo;bcdg/0làqÉp.râL-,=+zk%95R×xé050Q0w0D0q0F0U0d0n0P0U0q0d0d0)010D0F0Y010406050d0i0v0v0q0!0m040s0M0U0i170M0o0n020q0v0Y0N0n0:0w1h0!0W0i0w0d050S1e1g1i1k1c0Y041I1P051S0S1S1U1P1c0Q0F0k0 1113150H0F0R0H0U1,0H0D1a050`0O0U0w1%1214011+1-1/1-0D1^1`1?0D0O0M0Q1k1@0!1Q0D0H0 1n0d0Y0q0o150z011|1)010j0|0w0o1v0w1?2k2m2r1~2u1`2x0v2z040b0n0y0!0M0Y0M0d0F1q1s0^2i0!0!0w0P2U1I2B0o1Q0S2g2*0D2e2d2f0Q2D151/0o2w2R1?1!1$101}2@0F2_0o2a1#1?0Y2Z1Q2(2*3b1d2l1s2 2s340!1h0U1a0u2%3f1b3e2C3h1~3j3l1a0z3p2m3r2(2?013w0q3m040e3A2)1c3D3u153G3I0A3L3C3f3E3R1a0/3U3N3W3P3F0M3k3H1a0K3#3s3g1(3v3*3x040p3U1R391I2}2-0Q2;3E0P2a2J0@1#1Q380w3a3q3{440^4c3t3=150,1a0^0j3{3O4j010E1a0n4p3%4r0o0j1a0o0O0f0+0w2O1H1J4d4q300119040x4w4i4M0o4B4R3;4M4O0J0C3#0n4%4v4L2s0P0u1a030n341s0k3H0q1_1{2Q0i0!4:0n0)0n0T4$4(3:3X1a2Z1e0U0`0D3U4)4x4M0M1a0)5d553(0v0F1a524J3B064(5e4S2s4l040E1+1`5k4*3v4V5r2)5v4X2s5h040-5D5f2s5n3n5q3b5J3E5M0)5j5H045W5m5o045U4K5Q1~4O4#5#5t5u545E3Q5G5V5l4r5Y5P5w5F040o5 5K1~5M0S0S643E5S040u5+5s5?5@5-5_04580i5a0q5c5#5%5}1a0*5!5{5^016c3o5;5u5|4M5y2Z0D4|636r6E3i571G6n5b3/0S4f4b3|6V0S3 1I0D416!2/2+292b2-4^1`2*3 1O4h65152Z0v0f0j0q0,0w0f0H0e1a1A1C1E1G0n5:3d1V3r1P0L1s6{2T0n6p0D2w2U0n1y110n0j1r2#0F1r0n290i104G0{0D0n0V0n0U00322u0o0F0n4{4}6M1~1i2T0H1h7j0=1a090x2n0T090J5d1y0w0U1`4:001G7B2l0~2 0F6^7k0n0Q0?7I0F0w0Z1R7b040X6I1!1r0~0^0~4?0!0F2m7j0d7 7a1c0H0u0n0F0Q150k4G2S1r0%0q8p0P0%2}0v2a1a0B8q7t1s8u2!4v6U048y2a1I8J050q3E0H0w0q0^0!2^4l0n0H2Z0j15038p0!8r0o8t8v8x1#8z0Q2q170D1`150y4G1h337B8X1a0c0a1I0q2*8j81058J8L0Q8N455$2Z0o0k0M7}7E1{1E0M177^0_9l0n587j7_2m0~0i2_7_1#0F8+0n7k0F0h2Z0Z2M1i9F0=1B0Y7+999e9b0x0u0p0g0.0(0n6e0T7$6T9e9t2w9i9k9S4g9V0p9!9Y9(8J9K0I1s0w0j0j0_9!7O157Q2g7T0w7V047X9W9Y7#5d2}9D0?7L9Ma201a47S6pa77W9V0T7!9(5V0Q1r9A9z0n9n9p0o7B2Wakama6a8aa0pad6r9raz9u1{aF6yaHaoaJ0xacau3q9K7d7L0w1p0n0k0?8b2u4GaA1F6s4MaU7Uaqab0.4 9#0p0;9$0n0*0naY3U8g1Y472~4r201.1:1=6=3E2F2w2y1a2L0s0P8b0Y7B0y0m2g1r3{4a6=3c4d8O6y5y4n4W3E4t5$bE3(4z4B4D4F4HbI4r4O4Q5#ak4U62bP4Y1a4!534%ak4,4.4:7u4?114_7L0M4|4~506f3M6D6ybV6m6o6q6x6j015~6L6y5M0%bX5R5)6B3b5=b$b`6O0d7j6a3(c2b 60156cb@1bb_c05y5A2vci4ycfchc3c05Y6w3qa=c85pc75.1a783qcc5?bU5`5,cm4N1a0(cw4Tcy0wcW5L5ic!3v0O4m8:8MbT6ybRcI6k6K3dc.cUc%cnc9cpak4Zb#cOce6l6Pb}c_c16ucD3BcF1~6Ac ak6G0_6Jd5b{d36R5;9d4g6W6/486;0l0P0F9!7u322T8c1/0d1{9/4baQdn4b7Cdaa38ba5aVaqat5d9rdEd259dl8JdJaGdMana^a90x0%0uaM5V1y7u7.0n0d0t4}2W7f2Z7h0i0n8z329y1s0Db:d?1{7w7y9!9r0|0n0m9F8F4|8Qaz2W9Q0i0~759s340v0Od_0P8S0!er0?b681a$9A7f7B1E009z1{dC6naR9C9E2l4}e1b;2We57+0R0!0#0P1{7DdT9bdH04ew6;0G9x7E8Q8)eK0!0?0P0?0^aD0w9!e9eb8Q8u7A0neE9B0k9D8E4)2.1r0R040_2%f50of7e~1s8;6n0MaieMe27_e4b:7ye$1T3afbf71m0m868Zax0rczcg2Ofc5$0C0 0_9ve,f30q0Y2Q0!9v2.0h0~0Ya(ec9F9~0F0P0qdu0D0?9!1h9D9+0o2=7+6U7L1o7;0M1w1`9O9K0$8Q4a5n9I1{fKd.cge*0!0R1B7^2Z441Lf-0?7~801c6Y0_0{0}04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)