Crible d'Eratosthène

Un nombre premier est un nombre entier naturel qui admet exactement deux diviseurs distincts entiers et positifs : 1 et lui-mĂŞme.

Le crible d’Ératosthène permet de déterminer les nombres premiers plus petit qu’un certain nombre n fixé.

On considère pour cela un tableau tab de nbooléens, initialement tous égaux à True, sauf tab[0] et tab[1] qui valent False, 0 et 1 n’étant pas des nombres premiers.

On parcourt alors ce tableau de gauche Ă  droite.

Pour chaque indice i :

  • si tab[i] vaut True : le nombre i est premier et on donne la valeur False Ă  toutes les cases du tableau dont l’indice est un multiple de i, Ă  partir de 2*i (c’est-Ă -dire 2*i, 3*i ...).

  • si tab[i] vaut False : le nombre i n’est pas premier et on n’effectue aucun changement sur le tableau.

On dispose de la fonction crible, incomplète et donnée ci-dessous, prenant en paramètre un entier n strictement positif et renvoyant un tableau contenant tous les nombres premiers plus petits que n.

Sieve of Eratosthenes animation.gif
By CC BY-SA 3.0, Link

Auteur SKopp sur Wikipedia allemand

Compléter la fonction crible

###(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 : 5/5

.128013b];=wlSd[f-:*431(gnahR.pAF/uerovm)q6 72i,y9éc8s_PtTk05050i0D0Y0u0O0g0V0L0T0g0u0V0V0e010Y0O0y010406050V0C0H0H0u0E0Q040h0F0g0C0`0F0t0L020u0H0y0d0L0w0D140E0J0C0D0V050B111315170 0y04051C1v1F0B1C0 0i0O0G0/0;0?0^0;0t0s0C0u0s0D0l0y0Q0Y0v1e0L0v0O0s0v0g1+0v0Y0}050*0b0g0D1O0=0@011*1,1.1,0Y1@1_1=0Y0E1D1$0/1a0V0y0u0t0^0N011{1Q010k0,0D0t1i0D1=2d2f2k1}2n1_2q0H2s040a0L0X0E0F0y0F0V0O1d1f0(2b0E0E0D0T2N1v2u0t1D0B1$2Z2729281?0i2w1R0O0t2p2K1=1L1N0:1|2-2/0t0F2?1=0y2S1D2X2Z33102e1f2^2l2|0E140g1=0u1)2S0k0^030W0W0T2}0D1.2{0F0l0#0l0q0}0L0q1v0u34370~362v391}3b3d3f3h0D3j013l3n3p3r2:3u0l2i040L0N3B3D2f3F2X2,013K0u3e1D3g0v3i3k3m3o0(3U2|3W0p3y0p3$2W3E0 3*3I0^3-3/053;3?3Q3^3T2.3V3v0o3y0o411w433G381P3J0F3c3.3M3=3O3@3S3`4g3|3v0$3y0$4m3344373+484w4c3R3_3q4C3t3v0K3y0K4I4o454r474t3L3:3N3P4Q4f3s3W0M3y0M4Z3(4K3H4$3,4(4v4*4x4,4e4B4/3v0U3y0U4@2Y4_4q2_4|4u494b4y4d4A4S540l0R3y0R593)4L465e4)4a4+4z4R3{4U3w0#0}0q0#5r5b4M4}5g5y5j5A4T3W0q3x045S5I4p5K5f4O5i4-534h3w3Y0q3#0B3C424^5X5u4N4 4P525l5(0q3~5U405-3%5a5;4{5?5x505z4.5{4j5U4l605/2Y1G311v2?2$0i292+5u4R2=1M1D300D323E6f1D4R6w2v0O0i0^3m2X5R3M6D6F5k5B6I0L2A0D6L5P5m5T414#5d0!0}0(0k6y635d0f3y6%6X3a0k0}0T0E0O1^0D6,5t4{0|040r6_4`5d0t0}0t6 5c2l6|0I0m6y0 4n3(5X6K016G373W3Y5x7g5_6N3v2i6P2r6S694D3X1=6e6-1}6*3Z0L7E753+0V0i0}021r0F0Y0d7L0C7N7P7M7O7b7G7n0W6H3v5}7m6E7h6M5Q7#2j6Q7u5%7w7$7z6`5d7I3y7E1m2p0G0F0O1`0C1f240D0u0C2b0t0Y2p2f0Y0L0Y0F0C0.1_0.2|0H0b2S0.6u0H800E8p1b8p0)2M1u7d628A6B1f7Y7!0l6b7%7/5`7w4j7s2B8K7p8H7y5.7A0^7_7D7E1r1`748C7c353*8F7j4E6J7(7o7+0l4F8O6R7)6T5(4F2Z8U7@2l8X7{1g7U7T7R7O7Q7S7W8C7f8/7Z8,0l4W4*7Y8`7w4W8@8Q8;9h3$926(3a0}8q8s8z330L9t1}0F0}0e6y9A8V016|0j0c9a8)4L8+2f4:8.9o5m4;9n8_7v5C4;8}8Y9H8 3J0}1@9G9B0^9D049F8C9(70770}0j7G5u0!0T0}0Z0E1s9|6{0}9M9?9.019:0n9-9I72048$4J7X9d8G569i9d9k5C569X8:5mam9r7{a9af9,9b9I9Ka45d8r0}5HaB9)0^6|0c0PadaK3,9+0u0baE9_049{aJ9^1}aG5UaV1}aMaPa!9/9Ea+761}9~0}0A3.0V6^aZa:aL0}aOa89Ia=04a@0-a`aia{0L9Q0t3W5oan9U5(5oas7*5mbdaw7Fb10}0k4ta/4M0}0Obs5u0F7C2.bw640b0}0E2f1Xa(a}6}bI01a$5,9Oa,9Ja~bB7173bL787a8%aj6L8G5G9T9Y7:5Cb%biap5R5E9$929sbo040O6$b0aQazaTbW9`bLafbvb85ua*b{bQ9:0e9=9za9b2a1a3c4a504bYb7bP8Eak9f5Sb(at5{3xb-9Z5R6V60b=cA9@a|aR049w0D8tbL9:0xc10}0u0y0y2p0ib bKchbUb^cT0I9N6x8*co9R3v5+crbj5{7r7.b)8Lb+7lczcBb?aQ6Z04bq0EbT9u040H0C0g0`0y1_c 9Cbzah3EcC4MbD04bF1Tb6c#aQ6|6~cV2lbNd8a-04acc7cDc2cTa ccaebVdoa)bSdvbtcXdDbJ79c!7ec$b#cp7$3g9jcwc)3~cvb*5R7=3Cc^c^ayaSaUdJbRaXcMd1d3d5d7d+c6dAaQc9dr01b2b4a_dM6gdO7)b$8IdSaodU3w8Nc/cs7w0q8Ic@bnc`bE0)0C0Edb3(dd5=9v2S8rcH9y4o9b0B6A6h6v6j6s1v0Y6meE2)2!aT1_2Z6k1B8D3+es0W0k0u0!0D0W0v5}1n1p8!0.ck6x1I3F1C0z0L0;0Ld60u0T1`2Pe/212/3z0N6P8g0.866=1e8p870S6;0O2S0LbY1J1E6z3pc|4t0Ld2d40{1_b91f0j0!0n0O0Lc}0L0!fn0Ldh1X0r0N0P6P0Ib90kfvfr02d40d0t0cbYeze*7c0(0*0,0V04.