Algorithme

Résolu/Fermé
Xanndrine Messages postés 1 Date d'inscription dimanche 8 septembre 2013 Statut Membre Dernière intervention 8 septembre 2013 - 8 sept. 2013 à 21:49
apprendreEtSeDevelopper Messages postés 65 Date d'inscription vendredi 22 juillet 2011 Statut Membre Dernière intervention 18 octobre 2013 - 9 sept. 2013 à 11:37
Bonjour je suis débutante dans un cour d'introduction en programmation et jessaie de comprendre comment sa marche au départ la question était:
*(NombreParfait) Élaborer un programme qui détermine si un entier positif demandé à l'utilisateur est un nombre parfait. Un nombre parfait est un nombre dont la somme de ses diviseurs propres (i.e tous les diviseurs sauf le nombre lui-même) est égale au nombre lui-même.
Il etait préciser qu'il fallait utiliser une boucle!
Comme vous pouvez vous imaginer je n'ai jamais fait d'algorithme ni de programmation avant. j'ai essayer de me débrouiller et j'aimerais savoir si c'est correcte et bien évidament quel sont mes erreures! dommaine tres dur a déchiffrer pour quelqu'un qui na jamais fait sa;)
Donc, voici mon Algorithme.

Demander entierPositif
sommeDiviseur, k, compteur, € N

lire (entierPositif);
compteur = 0;
Tant que compteur < entierPositif
faire sommeDiviseur ¬ 1;
Pour k ¬ 2 jusquà entierPositif -1
Si reste (entierPositif par k) = 0
k divise entierPositif
Sinon
sommeDiviseur ¬ sommeDiviseur + k
Finsi
Finpour ;
Si sommeDiviseur = entierPositif
ecrire(entierPositif ) ;
compteur ¬ compteur + 1;
Finsi;
entierPositif ¬ entierPositif + 1
Fin tant que
Fin

* ¬ est une fleche qui pointe vers la variable a gauche

1 réponse

apprendreEtSeDevelopper Messages postés 65 Date d'inscription vendredi 22 juillet 2011 Statut Membre Dernière intervention 18 octobre 2013 6
9 sept. 2013 à 11:37
Bonjour,

Alors dans ton algorithme il y a 2 boucles alors que tu pourrais faire tout ca en un boucle, ca donnerais :

-- INITIALISATION DES VARIABLES

lire ENTIER_POSITIF
diviseur = 1
somme = 0

-- BOUCLE DE TRAITEMENT
Tant que diviseur est strictement plus petit que ENTIER_POSITIF faire
si reste de ENTIER_POSITIF par diviseur = 0 alors faire
somme += diviseur
fin si
diviseur ++
fin tant que

-- CONCLUSION
si somme = ENTIER_POSITIF alors faire
Afficher "l'entier est parfait !!"
sinon
Afficher "l'entier N'est PAS parfait"
-1