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

.1280137*w4h)1(5-,_s3u:/S[ qbn=Aéve08im.FtP]RT69p2dr;gylckfao050S0C0J0#0F0X0n0u0Y0X0#0n0n0y010J0F0Q010406050n0p0G0G0#0T0W040s0$0X0p0`0$0x0u020#0G0Q0U0u0M0C140T0v0p0C0n050r111315170 0Q04051C1v1F0r1C0 0S0F0B0/0;0?0^0;0x0V0p0#0V0C0k0Q0W0J0f1e0u0f0F0V0f0X1+0f0J0}050*0w0X0C1O0=0@011*1,1.1,0J1@1_1=0J0T1D1$0/1a0n0Q0#0x0^0R011{1Q010!0,0C0x1i0C1=2d2f2k1}2n1_2q0G2s040a0u0K0T0$0Q0$0n0F1d1f0(2b0T0T0C0Y2N1v2u0x1D0r1$2Z2729281?0S2w1R0F0x2p2K1=1L1N0:1|2-2/0x0$2?1=0Q2S1D2X2Z33102e1f2^2l2|0T140X1=0#1)2S0!0^030m0m0Y2}0C1.2{0$0k0D0k0h0}0u0h1v0#34370~362v391}3b3d3f3h0C3j013l3n3p3r2:3u0k2i040u0R3B3D2f3F2X2,013K0#3e1D3g0f3i3k3m3o0(3U2|3W0o3y0o3$2W3E0 3*3I0^3-3/053;3?3Q3^3T2.3V3v0e3y0e411w433G381P3J0$3c3.3M3=3O3@3S3`4g3|3v0j3y0j4m3344373+484w4c3R3_3q4C3t3v0O3y0O4I4o454r474t3L3:3N3P4Q4f3s3W0b3y0b4Z3(4K3H4$3,4(4v4*4x4,4e4B4/3v0E3y0E4@2Y4_4q2_4|4u494b4y4d4A4S540k0P3y0P593)4L465e4)4a4+4z4R3{4U3w0D0}0h0D5r5b4M4}5g5y5j5A4T3W0h3x045S5I4p5K5f4O5i4-534h3w3Y0h3#0r3C424^5X5u4N4 4P525l5(0h3~5U405-3%5a5;4{5?5x505z4.5{4j5U4l605/2Y1G311v2?2$0S292+5u4R2=1M1D300C323E6f1D4R6w2v0F0S0^3m2X5R3M6D6F5k5B6I0u2A0C6L5P5m5T414#5d0Z0}0(0!6y635d0d3y6%6X3a0!0}0Y0T0F1^0C6,5t4{0|040i6_4`5d0x0}0x6 5c2l6|0g0q6y0 4n3(5X6K016G373W3Y5x7g5_6N3v2i6P2r6S694D3X1=6e6-1}6*3Z0u7E753+0n0S0}017L7b7G7n0m6H3v5}7m6E7h6M5Q7S2j6Q7u5%7w7T7z6`5d7I3y7E1m2p0B0$0F1`0p1f240C0#0p2b0x0J2p2f0J0u0J0$0p0.1_0.2|0G0w2S0.6u0G7@0T8g1b8g0)2M1u7d628r6B1f7P7R0k6b7U7$5`7w4j7s2B8B7p8y7y5.7A0^7-7D7E1r1`748t7c353*8w7j4E6J7V7o7Y0k4F8F6R7W6T5(4F2Z8L7+2l8O7/0u7L017N8t7f8$7Q8Z0k4W4*7P8.7w4W8+8H8(943$8_6(3a0}8h8j8q330u9g1}0$0}0y6y9n8M016|0t0L8}8W4L8Y2f4:8#9b5m4;9a8-7v5C4;8;8P9u8?3J0}1@9t9o0^9q049s8t9R70770}0t7G5u0Z0Y0}0N0T1s9,6{0}9z9$9X019Z0c9W9v72048T4J7O908x569590975C569K8%5ma99e7/9|a29V8~9v9x9@5d8i0}5Hao9S0^6|0L0la0ax3,9U0#0war9)049+aw9(1}at5UaI1}azaCaN9Y9raU761}9.0}0I3.0n6^aMaZay0}aB9{9va#04a%0-a*a5a+0u9D0x3W5oaa9H5(5oaf7X5mb0aj7Fa;0}0!4taY4M0}0Fbf5u0$7C2.bj640w0}0T2f1XaRa-6}bv01aP5,9BaV9wa.bo7173by787a8Ua66L8x5G9G9L7%5CbQb5ac5R5E9P8_9fbb040F6$a:aDamaGbJ9*bya2bia{5uaTb+bD9Z0y9#9m9|a=9;9?b@9^04bLa`bC8va7925SbRag5{3xbW9M5R6V60b#cn9%a,aE049j0C8kby9Z0Hb;0}0#0Q0Q2p0Sb/bxc4bHb(cG0g9A6x8Xcb9E3v5+ceb65{7r7#bS8CbU7lcmcob$aD6Z04bd0TbG9h040G0p0X0`0Q1_c/9pbma43Ecp4Mbq04bs1Ta_cOaD6|6~cI2lbAc{aW049 b`cqb=cGa/b a1bIdbaSbFdibgcKdqbw79cN7ecPbOcc7T3g96cjcS3~cibT5R7)3Cc(c(alaFaHdwbEaKczc;c?c^c`dUb_dnaDb|de01a=a@a)dz6gdB7WbP8zdFabdH3w8EcYcf7w0h8zc%bac*br0)0p0Tc~3(d05=9i2S8icu9l4o8~0r6A6h6v6j6s1v0J6mer2)2!aG1_2Z6k1B8u3+ef0m0!0#0Z0C0m0f5}1n1p8R0.c76x1I3F1C0z0u0;0uc_0#0Y1`2PeY212/3z0R6P870.7}6=1e8g7~0A6;0F2S0ubL1J1E6z3pc,4t0uc=c@0{1_a|1f0t0Z0c0F0uc-0u0Zfa0ud41X0i0R0l6P0ga|0!fife02c@0U0x0LbLemeT7c0(0*0,0n04.