algorithme du crible d`Eratosthène

publicité
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.
Téléchargement