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
.9875.65038.128013:Lp%(40zed3;è 1EVo5_âên)h6,qcyuvài2+Dxms×7=ûÉwlSIatf-9ORrg.éPkb8/050m0l0#0!0K0X0Q0q0F0X0!0Q0Q0T010#0K0f010406050Q0H0P0P0!0+0G040Y0u0X0H170u0z0q020!0P0f0o0q0*0l1h0+0E0H0l0Q050?1e1g1i1k1c0f041I1P051S0?1S1U1P1c0m0K0I0 1113150B0K0,0B0X1,0B0#1a050`0;0X0l1%1214011+1-1/1-0#1^1`1?0#0;0u0m1k1@0+1Q0#0B0 1n0Q0f0!0z150L011|1)010$0|0l0z1v0l1?2k2m2r1~2u1`2x0P2z040c0q0/0+0u0f0u0Q0K1q1s0^2i0+0+0l0F2U1I2B0z1Q0?2g2*0#2e2d2f0m2D151/0z2w2R1?1!1$101}2@0K2_0z2a1#1?0f2Z1Q2(2*3b1d2l1s2 2s340+1h0X1a0r2%3f1b3e2C3h1~3j3l1a0L3p2m3r2(2?013w0!3m040n3A2)1c3D3u153G3I0i3L3C3f3E3R1a0v3U3N3W3P3F0u3k3H1a0C3#3s3g1(3v3*3x040S3U1R391I2}2-0m2;3E0F2a2J0@1#1Q380l3a3q3{440^4c3t3=150:1a0^0$3{3O4j010W1a0q4p3%4r0z0$1a0z0;0w0k0l2O1H1J4d4q300119040h4w4i4M0z4B4R3;4M4O0A0d3#0q4%4v4L2s0F0r1a030q341s0I3H0!1_1{2Q0H0+4:0q0T0q0j4$4(3:3X1a2Z1e0X0`0#3U4)4x4M0u1a0T5d553(0P0K1a524J3B064(5e4S2s4l040W1+1`5k4*3v4V5r2)5v4X2s5h040g5D5f2s5n3n5q3b5J3E5M0T5j5H045W5m5o045U4K5Q1~4O4#5#5t5u545E3Q5G5V5l4r5Y5P5w5F040z5 5K1~5M0?0?643E5S040r5+5s5?5@5-5_04580H5a0!5c5#5%5}1a0M5!5{5^016c3o5;5u5|4M5y2Z0#4|636r6E3i571G6n5b3/0?4f4b3|6V0?3 1I0#416!2/2+292b2-4^1`2*3 1O4h65152Z0P0w0$0!0:0l0w0B0n1a1A1C1E1G0q5:3d1V3r1P0)1s6{2T0q6p0#2w2U0q1y110q0$1r2#0K1r0q290H104G0{0#0q0J0q0X00322u0z0K0q4{4}6M1~1i2T0B1h7j0O1a090h2n0j090A5d1y0l0X1`4:001G7B2l0~2 0K6^7k0q0m0.7I0K0l0-1R7b040V6I1!1r0~0^0~4?0+0K2m7j0Q7 7a1c0B0r0q0K0m150I4G2S1r0%0!8p0F0%2}0P2a1a0t8q7t1s8u2!4v6U048y2a1I8J050!3E0B0l0!0^0+2^4l0q0B2Z0$15038p0+8r0z8t8v8x1#8z0m2q170#1`150/4G1h337B8X1a0a0b1I0!2*8j81058J8L0m8N455$2Z0z0I0u7}7E1{1E0u177^0_9l0q587j7_2m0~0H2_7_1#0K8+0q7k0K0p2Z0-2M1i9F0O1B0f7+999e9b0h0r0S0=0(0D0q6e0j7$6T9e9t2w9i9k9S4g9V0S9!9Y9(8J9K0s1s0l0$0$0_9!7O157Q2g7T0l7V047X9W9Y7#5d2}9D0.7L9Ma201a47S6pa77W9V0j7!9(5V0m1r9A9z0q9n9p0z7B2Wakama6a8aa0Sad6r9raz9u1{aF6yaHaoaJ0hacau3q9K7d7L0l1p0q0I0.8b2u4GaA1F6s4MaU7Uaqab0(4 9#0S0R9$0q0M0qaY3U8g1Y472~4r201.1:1=6=3E2F2w2y1a2L0Y0F8b0f7B0/0G2g1r3{4a6=3c4d8O6y5y4n4W3E4t5$bE3(4z4B4D4F4HbI4r4O4Q5#ak4U62bP4Y1a4!534%ak4,4.4:7u4?114_7L0u4|4~506f3M6D6ybV6m6o6q6x6j015~6L6y5M0%bX5R5)6B3b5=b$b`6O0Q7j6a3(c2b 60156cb@1bb_c05y5A2vci4ycfchc3c05Y6w3qa=c85pc75.1a783qcc5?bU5`5,cm4N1a0Dcw4Tcy0lcW5L5ic!3v0;4m8:8MbT6ybRcI6k6K3dc.cUc%cnc9cpak4Zb#cOce6l6Pb}c_c16ucD3BcF1~6Ac ak6G0_6Jd5b{d36R5;9d4g6W6/486;0Z0F0K9!7u322T8c1/0Q1{9/4baQdn4b7Cdaa38ba5aVaqat5d9rdEd259dl8JdJaGdMana^a90h0%0raM5V1y7u7.0q0Q0U4}2W7f2Z7h0H0q8z329y1s0#b:d?1{7w7y9!9r0|0q0G9F8F4|8Qaz2W9Q0H0~759s340P0;d_0F8S0+er0.b681a$9A7f7B1E009z1{dC6naR9C9E2l4}e1b;2We57+0,0+0x0F1{7DdT9bdH04ew6;0N9x7E8Q8)eK0+0.0F0.0^aD0l9!e9eb8Q8u7A0qeE9B0I9D8E4)2.1r0,040_2%f50zf7e~1s8;6n0uaieMe27_e4b:7ye$1T3afbf71m0G868Zax0yczcg2Ofc5$0d0 0_9ve,f30!0f2Q0+9v2.0p0~0fa(ec9F9~0K0F0!du0#0.9!1h9D9+0z2=7+6U7L1o7;0u1w1`9O9K0e8Q4a5n9I1{fKd.cge*0+0,1B7^2Z441Lf-0.7~801c6Y0_0{0}04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)