Aller au contenu

Valuation p-adique

Le cadre

Pour un nombre premier p, la valuation p-adique d'un entier naturel non nul n est le nombre de fois que l'on peut diviser n par le nombre p avec un reste nul.

Exemples

  • Avec \(p=2\), \(1000 = 2^3×125\), on a pu diviser 3 fois par \(2\), donc la valuation 2-adique de 1000 est 3.
  • Avec \(p=3\), \(81 = 3^4×1\), on a pu diviser 4 fois par \(3\), donc la valuation 3-adique de 81 est 4.
  • Avec \(p=5\), \(49 = 5^0×49\), on n'a pas pu diviser par \(5\), donc la valuation 5-adique de 49 est 0.

Exercice

Coder une fonction valuation qui prend en paramètres un nombre premier p puis un entier naturel non nul n, et qui renvoie la valuation p-adique de n.

###(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 : /
.128013x/.r;nbOylaeê%u)*d63Am(P+02-,59fq78 _o=pcwgv41kRéhtsSàji:050s0m0Z0l0(0k0!0K0P0k0l0!0!0N010Z0(0O010406050!0p0w0w0l0e0j040#0M0k0p0}0M0g0K020l0w0O0f0K0W0m170e0H0p0m0!050c1416181a120O04051F1y1I0c1F120s0(0S0=0@0_0{0Y0(0R0Y0k1W0Y0Z10050-0h0k0m1R0^0`011V1X1Z1X0Z1)1+1%0Z0e1G0Z0Y1-1T010G0/0m0g1l0m010=1d0!0O0l0g0{0B1%2d2f211/241+270w29040a0K0y0e0M0O0M0!0(1g1i0+2b0e0e0m0P2D1y2k0g1G0c1 2P1|1~1}1(0s2m0{1Z0g262A1%1O1Q0?1.2Z0(2#0g0M2)1%0O2I1G2N2P2`132e1i2+222:0e170k100K0U2M2~112}2l301/3234360B392f3b2N2Y013g0l35040K0u3k2O123n3e0{3q3s0K0T3w3m2~3o3C360E3G3y3I3A3p0M333r360t3N3c2 1S3f3S3h3t0I3X3z3!3B3$3U3t0J3*3P3,3R3T3D0F3=3d3@3K040U0A3|3Z2,3^3%0U381z3a3O3}453 0U3j4a3l4c44313.3s0U3v4i2O1J2^1y2)2S0s1~2X3Q0P2;2s0*1P1G2@0m2_3a3G054C0+4K4d220V100+0G4M3+450Q364X3?4e0G100S3r0p0l2L4r4Q4l1/0 040x4$4R3f100O4`4=0{4@0D3G0K3Y3J100g4 3o4@0q0)433o4!3t0K5j5a3Q0!0s10015q5f5m5o5i5j1q0g0S0M0(1,0@0K4+1e4.0(1h0K0O0C0l1O1u1,2F594:4k3o5n365j5K0K0s5A0Z0K0n1|1,0p1i2:0w0h2I5K2I0w5B0e5s3@5W5v0K2E5$5(5*5~5J0g0p0k5`455|5Y0K5q013N6b564B0U10031.0m0e5%1i020R0Z1o425T6g4Y220P6j046l0_6n5%1w0Z0L4I5@6n0x0O0q6f5Y6h3~100m546S450M100N6W6y1/5@106v2`066x4%4S100Q1V1+6$6/4|045S2`556%0{6Z040o6^4{3B4}745001710N6#4:6~6_0{6)046+4L6 014@5e6w6b6R7m0g58783o7b7w3Q7u6{7z3@710c0c7D4e777q7r7f753p6U7I22710z7d6}6X227i496,6.7O4T042I0Z0p0e6|3a7N797B6V5T1y4O4J4t7`0c4w1y0Z4y7 2V2Q0l1*7|4w1E4;3o5?0L0G0l0V0m0L0Y0u101q1s5P0;7p2|1L3b2)3o5N0w1h2C5I1i0}4@1E8v0s8x0g8z1h0C0}0Z1`040i0O0X0e4.0m7,0;260C0O0@0P7?1M1H040y0M7,0K5,0K0M0h0%0,6~1|1h0R040(164-862M8_0g8{0D2b165+1i260}6n557_7C0c9e955J0l0K7p8(8u3Q1;1Y1!1$8a3Q2o2628102u0#0P0e0~5%0y0j1 1h4M4I4;2{4L9e7X6`7.3l7:7x107U7R6`0V545k7m6A6k0K0X1u1P3r9a0K0$5j1i0N5~0K0z0K9!7@7t7v7e9Q70100C7V7/a17P049|6}9$7g019(6C9*9,5F9/9;9^9@1i0C9{68319 7W7m710ra59Ta77Baa7/ac7Oaf03ah0p9-2p5%al9?9^0raq9}ad7B9S2O9U3Q7F0cayaWaA10aC9TaX3@aGaIaKak9=0Kan0K7GaR6,a%9fauad7Fa#3ta{a)aWaE79a-9+aJaj0gaMa;a?0ca_4ba7710dbk9#a7a-0/0K0m0b0(0!0Z1,0h5B2E000l1f2I0;2y8S8U8W3X9g4D2P9L4v4G890v2.2B9i1i2z0p4+2C9*9C0(5;1+2b2F9m8t1P3o9q1?1#2jad9w2q2s9Ab#0O9F9H0Y9J4:1H4u8r2|9P7m7(4V5l3@5h55c17t4)045F4-4/2|7m4@4_ceaT7Kclad529Y76a|7lct105dar1/cc6Rcp7O5|6dcC0{6a5Y5x5z5B0K5Dci5H5J5L5N0(5P5!1,1i6N5=1r5^955-64666PaScH5u6bcJ7La+45aG6m6obqbu6J5?5^6Nc/7#7sadc{6Ec}6q6s6u6Qb557047?a}7O7ya07m7i7k4j7$797(6=25cva8aVb1av1073dmcq044~dDdk6!b0c_7Y0(6*ca457ode7ra{dydL1/aZdKa{dGd57Ma{dia6dA049XdH797ZdSa77(7*7,dVd(bJ9P1L4u7}bPbO0S3b7}0,0.0:04.