Décomposition en facteurs premiers - v3
Le cadre
Afin d'améliorer notre deuxième fonction de factorisation,
on souhaite une complexité racinaire en n.
On souhaite donc obtenir en temps bref :
🐍 Script Python
assert factorisation_v3(1_000_000_007) == [(1_000_000_007, 1)]
assert factorisation_v3(4_000_000_028) == [(2, 2), (1_000_000_007, 1)]
Exercice
Coder une fonction factorisation_v3 :
- qui prend en paramètre un entier naturel non nul
n - et qui renvoie la décomposition en facteurs premiers de
nsous la forme d'une liste de tuples (facteur premier, exposant).
La liste sera donnée dans l'ordre strictement croissant des facteurs premiers. Les exposants associés seront non nuls.
On demande, ici, une complexité racinaire en
n.
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
.128013],59/f.q78r;nb N_o=ylae%ïpcwgu)vd*M4613kRméhtsP(S0+2C[-i:050H0x0T0w0(0v0U0p0B0v0w0U0U0t010T0(0A010406050U0E0Q0Q0w0l0u040X0s0v0E0}0s0n0p020w0Q0A0m0p0P0x170l0i0E0x0U050f1416181a120A04051F1y1I0f1F120H0(0G0=0@0_0{0S0(0D0S0v1W0S0T10050-0o0v0x1R0^0`011V1X1Z1X0T1)1+1%0T0l1G0T0S1-1T010g0/0x0n1l0x010=1d0U0A0w0n0{0!1%2d2f211/241+270Q29040a0p0V0l0s0A0s0U0(1g1i0+2b0l0l0x0B2D1y2k0n1G0f1 2P1|1~1}1(0H2m0{1Z0n262A1%1O1Q0?1.2Z0(2#0n0s2)1%0A2I1G2N2P2`132e1i2+222:0l170v100p0M2M2~112}2l301/3234360!392f3b2N2Y013g0w35040p0N3k2O123n3e0{3q3s0p0K3w3m2~3o3C360d3G3y3I3A3p0s333r360L3N3c2 1S3f3S3h3t0j3X3z3!3B3$3U3t0k3*3P3,3R3T3D0e3=3d3@3K040M0Y3|3Z2,3^3%0M381z3a3O3}453 0M3j4a3l4c44313.3s0M3v4i3x3Y3J4n100M3F4r3H4d4m3_4w3M4z4k4u4D403W4G4t3Q4f3)4M3+4e4v403;4R3?4T4J0M3{4z1J2^1y2)2S0H1~2X3Q0B2;2s0*1P1G2@0x2_3a3G054;0+4|4B1/0O100+0g4~4S220C36594Y310g100g0w2K3S0(0U0w2D0r0G4q2|5a1/0 040W5e533B100n5A4l5w100F0)3N0p5M0p4N3@55041.0x0l0T3G5O5v5C045E4z5Y5f1/0s10020D0T0m5X5P450Q0(10424G5N5(5B3p5i5k0T0x0E0l1x5%5=225+040t5;5Z015x0$0b5L5N683f100A6d5)0{6a6c676e5@104h2`065|6l0{5R0C1V1+6p5~0n5D6I5G6r5,5.5:6u6q016w405F3o5x5K5{5|6k6e5R0(586S6J6n6M3o6a0I6/4O6.6,6N016a5-5/6?3~6L4%6e6Z6j6$6$6C5 045j2K63656X3Q6a0h7f705S0A0A260H7j455x0W5z726T6K5#7q225x0c6 5?5^6W7v5~5x0F0F75766%7w712`5}6`6s7D226V496z6A7N787x0x7V5*106t7R786V5`6z7N7S3o6E6G7(6_3J7Q3a7?7g100y7)5!6o7{806b7,7~7.7F7:4}73106!7;7=7O6-7y863@6a0f0f893l7 7k858i8j8u4e107`7-6e6a0Z8s2O8z7W7F7Y4b7=786)6+8D7P048C8a8E6P6~8n7E5_7z5H048h8N8y8J6m7a617d665u6T7h8%5!0w7m7o8_6f107t8~7x8w8e6T7B83798V3l787J7L4G7!767$6^8S5~8F8H3t8b4w3N9g8-6D102I0T645$9k6`7x7b62648=4b1y504{4(9K0f4+1y0T4-9P2V2Q0w1*9M4+1E526`2I0Q0r5j0O0x0r0S0N101q1s1u1w0p8*9b1L3b2)3o0w0H0Q1h2C0(1h0p2.0g6a1E9}9 a12D0%0}0T1`040J0R1 4=0p270z0G7`1M1H040#0,620p0Qak0Sam1w0Tanaw1r26aE0A1e0;7n0la73T0nax9=0=0x0v1+0p0G1v0p26aY0Ma#aE0G0!7i9`9Z0V0s640-aR0ca#aW1,2I0UaS0E3r6*0(0R1,2F131|1h0D5#0wap8Cb70nb9a-as1F0qa;0;0H0R4;0E0G0l0(2x0nbm1,0o0(a$2r0/1+9FayaA4=0Ubh3b9N4^129N0,0.0:04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)