Aller au contenu

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,

  1. \(42000 = 4200×10 + 0\),
  2. \(4200 = 420×10 + 0\),
  3. \(420 = 42×10 + 0\),
  4. \(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.
###(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
.9875.65038.128013à3è4.ênx/R)p8IL0EhDÉv7c256g%9f=buS-û,_×l(wOaPkzé;:Vorâs1qmydi te+050.0=0;0U0/0Q0)0:0z0Q0U0)0)0H010;0/0o010406050)0J0,0,0U0%0-040K0$0Q0J170$0j0:020U0,0o0Z0:0m0=1h0%0+0J0=0)050l1e1g1i1k1c0o041I1P051S0l1S1U1P1c0.0/0x0 1113150u0/0D0u0Q1,0u0;1a050`0I0Q0=1%1214011+1-1/1-0;1^1`1?0;0I0$0.1k1@0%1Q0;0u0 1n0)0o0U0j150A011|1)010G0|0=0j1v0=1?2k2m2r1~2u1`2x0,2z040c0:0V0%0$0o0$0)0/1q1s0^2i0%0%0=0z2U1I2B0j1Q0l2g2*0;2e2d2f0.2D151/0j2w2R1?1!1$101}2@0/2_0j2a1#1?0o2Z1Q2(2*3b1d2l1s2 2s340%1h0Q1a0*2%3f1b3e2C3h1~3j3l1a0A3p2m3r2(2?013w0U3m040e3A2)1c3D3u153G3I0g3L3C3f3E3R1a0B3U3N3W3P3F0$3k3H1a0C3#3s3g1(3v3*3x040y3U1R391I2}2-0.2;3E0z2a2J0@1#1Q380=3a3q3{440^4c3t3=150W1a0^0G3{3O4j010S1a0:4p3%4r0j0G1a0j0I0O0X0=2O1H1J4d4q300119040R4w4i4M0j4B4R3;4M4O0n0!3#0:4%4v4L2s0z0*1a030:341s0x3H0U1_1{2Q0J0%4:0:0H0:0s4$4(3:3X1a2Z1e0Q0`0;3U4)4x4M0$1a0H5d553(0,0/1a524J3B064(5e4S2s4l040S1+1`5k4*3v4V5r2)5v4X2s5h040E5D5f2s5n3n5q3b5J3E5M0H5j5H045W5m5o045U4K5Q1~4O4#5#5t5u545E3Q5G5V5l4r5Y5P5w5F040j5 5K1~5M0l0l643E5S040*5+5s5?5@5-5_04580J5a0U5c5#5%5}1a0?5!5{5^016c3o5;5u5|4M5y2Z0;4|636r6E3i571G6n5b3/0l4f4b3|6V0l3 1I0;416!2/2+292b2-4^1`2*3 1O4h65152Z0,0O0G0U0W0=0O0u0e1a1A1C1E1G0:5:3d1V3r1P0T1s6{2T0:6p0;2w2U0:1y110:0G1r2#0/1r0:290J104G0{0;0:0d0:0Q00322u0j0/0:4{4}6M1~1i2T0u1h7j0k1a090R2n0s090n5d1y0=0Q1`4:001G7B2l0~2 0/6^7k0:0.0Y7I0/0=0h1R7b040w6I1!1r0~0^0~4?0%0/2m7j0)7 7a1c0u0*0:0/0.150x4G2S1r0L0U8p0z0L2}0,2a1a0#8q7t1s8u2!4v6U048y2a1I8J050U3E0u0=0U0^0%2^4l0:0u2Z0G15038p0%8r0j8t8v8x1#8z0.2q170;1`150V4G1h337B8X1a0a0b1I0U2*8j81058J8L0.8N455$2Z0j0x0$7}7E1{1E0$177^0_9l0:587j7_2m0~0J2_7_1#0/8+0:7k0/0f2Z0h2M1i9F0k1B0o7+999e9b0R0*0y0p0F0N0:6e0s7$6T9e9t2w9i9k9S4g9V0y9!9Y9(8J9K0t1s0=0G0G0_9!7O157Q2g7T0=7V047X9W9Y7#5d2}9D0Y7L9Ma201a47S6pa77W9V0s7!9(5V0.1r9A9z0:9n9p0j7B2Wakama6a8aa0yad6r9raz9u1{aF6yaHaoaJ0Racau3q9K7d7L0=1p0:0x0Y8b2u4GaA1F6s4MaU7Uaqab0F4 9#0y0P9$0:0?0:aY3U8g1Y472~4r201.1:1=6=3E2F2w2y1a2L0K0z8b0o7B0V0-2g1r3{4a6=3c4d8O6y5y4n4W3E4t5$bE3(4z4B4D4F4HbI4r4O4Q5#ak4U62bP4Y1a4!534%ak4,4.4:7u4?114_7L0$4|4~506f3M6D6ybV6m6o6q6x6j015~6L6y5M0LbX5R5)6B3b5=b$b`6O0)7j6a3(c2b 60156cb@1bb_c05y5A2vci4ycfchc3c05Y6w3qa=c85pc75.1a783qcc5?bU5`5,cm4N1a0Ncw4Tcy0=cW5L5ic!3v0I4m8:8MbT6ybRcI6k6K3dc.cUc%cnc9cpak4Zb#cOce6l6Pb}c_c16ucD3BcF1~6Ac ak6G0_6Jd5b{d36R5;9d4g6W6/486;0q0z0/9!7u322T8c1/0)1{9/4baQdn4b7Cdaa38ba5aVaqat5d9rdEd259dl8JdJaGdMana^a90R0L0*aM5V1y7u7.0:0)0M4}2W7f2Z7h0J0:8z329y1s0;b:d?1{7w7y9!9r0|0:0-9F8F4|8Qaz2W9Q0J0~759s340,0Id_0z8S0%er0Yb681a$9A7f7B1E009z1{dC6naR9C9E2l4}e1b;2We57+0D0%0(0z1{7DdT9bdH04ew6;0v9x7E8Q8)eK0%0Y0z0Y0^aD0=9!e9eb8Q8u7A0:eE9B0x9D8E4)2.1r0D040_2%f50jf7e~1s8;6n0$aieMe27_e4b:7ye$1T3afbf71m0-868Zax0iczcg2Ofc5$0!0 0_9ve,f30U0o2Q0%9v2.0f0~0oa(ec9F9~0/0z0Udu0;0Y9!1h9D9+0j2=7+6U7L1o7;0$1w1`9O9K0r8Q4a5n9I1{fKd.cge*0%0D1B7^2Z441Lf-0Y7~801c6Y0_0{0}04.