AlgoBox : Détermination du nième nombre premier

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.

Fichier AlgoBox associé : nieme_nb_premier.alg


Tester l'algorithme
Cliquer sur ce bouton pour exécuter l'algorithme : 

Résultats

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