Présentation de l'algorithme :
Détermination du nombre premier d'un certain rang avec la méthode du crible d'Eratosthène.
Il faut entrer le rang du nombre premier à chercher et ce rang doit-être compris entre 1 et 1000.
Code de l'algorithme :
1
VARIABLES
2
i EST_DU_TYPE NOMBRE
3
j EST_DU_TYPE NOMBRE
4
n EST_DU_TYPE NOMBRE
5
est_premier EST_DU_TYPE LISTE
6
p EST_DU_TYPE NOMBRE
7
rang EST_DU_TYPE NOMBRE
8
DEBUT_ALGORITHME
9
LIRE rang
10
SI (rang>1 ET rang<=1000) ALORS
11
DEBUT_SI
12
//Hack : pour les 1000 premiers nbs premiers, il est inutile d'aller au-delà de 10*rang
13
n PREND_LA_VALEUR 10*rang
14
POUR i ALLANT_DE 1 A n
15
DEBUT_POUR
16
est_premier[i] PREND_LA_VALEUR 1
17
FIN_POUR
18
i PREND_LA_VALEUR 2
19
TANT_QUE (i<=n) FAIRE
20
DEBUT_TANT_QUE
21
j PREND_LA_VALEUR i*2
22
TANT_QUE (j<=n) FAIRE
23
DEBUT_TANT_QUE
24
est_premier[j] PREND_LA_VALEUR 0
25
j PREND_LA_VALEUR j+i
26
FIN_TANT_QUE
27
i PREND_LA_VALEUR i+1
28
TANT_QUE (i<=n ET est_premier[i]==0) FAIRE
29
DEBUT_TANT_QUE
30
i PREND_LA_VALEUR i+1
31
FIN_TANT_QUE
32
FIN_TANT_QUE
33
p PREND_LA_VALEUR 0
34
i PREND_LA_VALEUR 0
35
TANT_QUE (p<=rang ET i<n) FAIRE
36
DEBUT_TANT_QUE
37
i PREND_LA_VALEUR i+1
38
SI (est_premier[i]==1) ALORS
39
DEBUT_SI
40
p PREND_LA_VALEUR p+1
41
FIN_SI
42
FIN_TANT_QUE
43
AFFICHER "le "
44
AFFICHER rang
45
AFFICHER " ième nombre premier est : "
46
AFFICHER i
47
FIN_SI
48
SINON
49
DEBUT_SINON
50
AFFICHER "Rang trop grand ou trop petit!"
51
FIN_SINON
52
FIN_ALGORITHME
Fichier AlgoBox associé : nieme_nb_premier.alg (faire un clic-droit et utiliser l'option "enregistrer sous" pour télécharger le fichier)
Tester l'algorithme :
Graphique :