Algorithme PanaMaths → Diviseurs positifs d`un entier naturel non nul

PanaMaths [1-4] Mai 2012
Algorithme PanaMaths
Æ Diviseurs positifs d’un entier naturel non nul
Introduction
L’algorithme présenté ici est un petit algorithme classique et très pratique permettant
d’obtenir la liste des diviseurs positifs d’un entier naturel non nul n.
Les diviseurs positifs d’un tel entier appartiennent à l’ensemble
{
}
a
b
1, 2, 3, 4,..., 1, 1;nn n−= .
Un entier i de cet ensemble est un diviseur de n si, et seulement si, le reste de la division
euclidienne de n par k est nul. En balayant l’ensemble
a
b
1;n et en testant, pour tout élément i
de cet ensemble, si le reste associé de la division euclidienne de n par i est nul, on obtiendra
l’ensemble des diviseurs de n.
Le cœur de l’algorithme est donc essentiellement composé d’une boucle et d’un test de
nullité. Le reste de la division euclidienne peut être obtenu de diverses façons, AlgoBox le
fournit directement (fonction « % »).
Les variables utilisées sont :
N : l’entier naturel strictement positif dont on cherche les diviseurs positifs.
I : l’entier courant (variant de 1 à N).
R : le reste de la division euclidienne de N par I (résultat de N%I sous AlgoBox).
www.panamaths.net
Diviseurs positifs d’un entier naturel non nul
PanaMaths [2-4] Juillet 2012
Organigramme
Au niveau de la mise en œuvre de cet algorithme simple, on peut ajouter à la lecture de la
variable n un test pour garantir, avant d’entrer dans la boucle principal, que le nombre saisi est
bien un entier naturel non nul (cf. l’algorithme AlgoBox fourni ci-après).
DEBUT
FIN
i = 0
Lire n
i = i + 1
i divise n ?
Afficher i
Oui
Non
?
Oui
Non
www.panamaths.net
Diviseurs positifs d’un entier naturel non nul
PanaMaths [3-4] Juillet 2012
L’algorithme AlgoBox
Voici l’algorithme que vous pouvez tester en ligne :
Diviseurs - 26.07.2012
******************************************
Cet algorithme donne tous les diviseurs positifs d'un entier
naturel N strictement positif donné.
******************************************
1 VARIABLES
2 N EST_DU_TYPE NOMBRE
3 I EST_DU_TYPE NOMBRE
4 R EST_DU_TYPE NOMBRE
5 DEBUT_ALGORITHME
6 //Première saisie de la valeur de la variable N
7 AFFICHER "Saisir la valeur de l'entier naturel non nul
N."
8 LIRE N
9 TANT_QUE (N<=0 OU N-floor(N)!=0 OU N>200000) FAIRE
10 DEBUT_TANT_QUE
11 AFFICHER "ATTENTION ! N doit être un entier nature non
nul inférieur ou égal à 200 000 !"
12 LIRE N
13 FIN_TANT_QUE
14 //La valeur de la variable N est valide. On démarre la
recherche des diviseurs.
15 AFFICHER "Les diviseurs de "
16 AFFICHER N
17 AFFICHER " sont : "
18 POUR I ALLANT_DE 1 A N
19 DEBUT_POUR
20 R PREND_LA_VALEUR N%I
21 SI (R==0) ALORS
22 DEBUT_SI
23 AFFICHER " "
24 AFFICHER I
25 FIN_SI
26 FIN_POUR
27 FIN_ALGORITHME
www.panamaths.net
Diviseurs positifs d’un entier naturel non nul
PanaMaths [4-4] Juillet 2012
Remarques :
Quelques commentaires ont été ajoutés pour rendre l’algorithme plus lisible.
Un test triple est effectué sur la variable N puisque celle-ci doit être :
o Strictement supérieure à 0.
o Entière (N–floor(N) correspond à la différence entre N et sa partie entière et est
nulle si, et seulement si, N est entière).
o Inférieure ou égale à 200 000 tout simplement parce que la version courante
d’AlgoBox impose cette limitation au niveau des boucles « TANT QUE … »
(200 000 itérations au maximum et ici, la variable N correspond exactement au
nombre d’itérations effectuées).
Les diviseurs sont affichés au fur et à mesure de leur obtention.
1 / 4 100%

Algorithme PanaMaths → Diviseurs positifs d`un entier naturel non nul

La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !