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 :
Graphique :
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