Algorithme nombres premiers : Crible d’Eratosthène P est une variable liste ; la liste p est la liste des marqueurs p(i), pour i de 2 à n : p(i)=0 indique que i n’est pas premier p(i)=1 indique que i est premier Dans la liste des entiers de 2 à N, j’élimine successivement tous ceux qui sont multiples d’un entier j , sauf j : 2*j, 3*j, 4*j, … jusqu’à N (p(k*j)=0) ; les entiers restants, qui ne sont multiples que d’eux mêmes, sont premiers. Entrée Initialisation Traitement Elimination Sortie Entrer n Pour i de 2 à n Affecter la valeur 1 à p(i) Pour j de 2 à n Affecter la valeur 2 à k Tant que k*j<=n Affecter la valeur 0 à p(k*j) Affecter la valeur k+1 à k Pour i de 2 à N Si p(i)=1 Afficher i On cherche les nombres premiers plus petits que N Initialisation des p(i) à 1 On élimine les multiples de tous les entiers j de 2 à N sauf 1*j qui n’est évidemment pas éliminatoire ! On affiche les nombres restants ; ils sont premiers. Algorithme nombres premiers : Crible d’Eratosthène P est une variable liste ; la liste p est la liste des marqueurs p(i), pour i de 2 à n : p(i)=0 indique que i n’est pas premier p(i)=1 indique que i est premier Dans la liste des entiers de 2 à N, j’élimine successivement tous ceux qui sont multiples d’un entier j , sauf j : 2*j, 3*j, 4*j, … jusqu’à N (p(k*j)=0) ; les entiers restants, qui ne sont multiples que d’eux mêmes, sont premiers. Entrée Initialisation Traitement Elimination Sortie Entrer n Pour i de 2 à n Affecter la valeur 1 à p(i) Pour j de 2 à n Affecter la valeur 2 à k Tant que k*j<=n Affecter la valeur 0 à p(k*j) Affecter la valeur k+1 à k Pour i de 2 à N Si p(i)=1 Afficher i On cherche les nombres premiers plus petits que N Initialisation des p(i) à 1 On élimine les multiples de tous les entiers j de 2 à N sauf 1*j qui n’est évidemment pas éliminatoire ! On affiche les nombres restants ; ils sont premiers.