Présentation de l'algorithme :

Algorithme donnant la décomposition en facteurs premiers d'un entier naturel supérieur ou égal à 2.

Tester l'algorithme :


(cliquer sur le bouton ci-dessus pour lancer ou relancer l'exécution de l'algorithme)

Résultats :

Code de l'algorithme :
1     VARIABLES
2       N EST_DU_TYPE NOMBRE
3       D EST_DU_TYPE NOMBRE
4       I EST_DU_TYPE NOMBRE
5       NDP EST_DU_TYPE NOMBRE
6       DP EST_DU_TYPE LISTE
7       EDP EST_DU_TYPE LISTE
8     DEBUT_ALGORITHME
9       //Lecture de l'entier naturel N dont on cherche la décomposition en facteurs premiers.
10      LIRE N
11      TANT_QUE (N<2 OU N-floor(N)!=0) FAIRE
12        DEBUT_TANT_QUE
13        AFFICHER "ATTENTION ! N doit être un entier supérieur ou égal à 2 !"
14        LIRE N
15        FIN_TANT_QUE
16      //La valeur de N est valable.
17      //Début du message de conclusion (car la variable N va être modifié dans la suite).
18      AFFICHER "L'entier "
19      AFFICHER N
20      //Initialisation des variables NDP, D et I.
21      NDP PREND_LA_VALEUR 0
22      D PREND_LA_VALEUR 2
23      I PREND_LA_VALEUR 0
24      //Début de la recherche des facteurs premiers.
25      TANT_QUE (D<=N) FAIRE
26        DEBUT_TANT_QUE
27        SI (N%D==0) ALORS
28          DEBUT_SI
29          N PREND_LA_VALEUR N/D
30          I PREND_LA_VALEUR I+1
31          SI (N==1) ALORS
32            DEBUT_SI
33            NDP PREND_LA_VALEUR NDP+1
34            DP[NDP] PREND_LA_VALEUR D
35            EDP[NDP] PREND_LA_VALEUR I
36            FIN_SI
37          FIN_SI
38          SINON
39            DEBUT_SINON
40            SI (I!=0) ALORS
41              DEBUT_SI
42              NDP PREND_LA_VALEUR NDP+1
43              DP[NDP] PREND_LA_VALEUR D
44              EDP[NDP] PREND_LA_VALEUR I
45              I PREND_LA_VALEUR 0
46              FIN_SI
47            SI (D>2) ALORS
48              DEBUT_SI
49              D PREND_LA_VALEUR D+2
50              FIN_SI
51              SINON
52                DEBUT_SINON
53                D PREND_LA_VALEUR D+1
54                FIN_SINON
55            FIN_SINON
56        FIN_TANT_QUE
57      //Fin de la recherche des facteurs premiers.
58      //Affichage de la conclusion.
59      SI (NDP==1 ET EDP[1]==1) ALORS
60        DEBUT_SI
61        //1er cas : N est premier.
62        AFFICHER " est premier."
63        FIN_SI
64        SINON
65          DEBUT_SINON
66          //2ème cas : N n'est pas premier.
67          AFFICHER " se décompose comme suit : "
68          POUR I ALLANT_DE 1 A NDP
69            DEBUT_POUR
70            SI (I!=1) ALORS
71              DEBUT_SI
72              AFFICHER " * "
73              FIN_SI
74            AFFICHER DP[I]
75            SI (EDP[I]>1) ALORS
76              DEBUT_SI
77              AFFICHER "^"
78              AFFICHER EDP[I]
79              FIN_SI
80            FIN_POUR
81          FIN_SINON
82    FIN_ALGORITHME