Algorithme nombre parfait

Fermé
caracawa Messages postés 1 Date d'inscription vendredi 1 avril 2016 Statut Membre Dernière intervention 1 avril 2016 - 1 avril 2016 à 12:27
 Profil bloqué - 1 avril 2016 à 20:44
comment ecrire un algorithme qui di si le nombre saisi est parfait ou pas

1 réponse

Profil bloqué
1 avril 2016 à 19:36
Un nombre parfait est égal à la somme de ses diviseurs (sauf lui même).
6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
Les quatre premiers nombres parfaits sont : 1, 6, 28, 496, 8128


--------------------

program Si_N_Est_Parfait;

var N, I, Somme : Integer;

begin

N := 8128;

Somme := 1; // N / N = 1;
for I := 2 // Sauf le nombre lui meme N / 1 = N
to N div 2 do { La somme est initialisée à 1,
inutile d'allonger les divisions jusqu'à N / N }
if N mod I = 0 then
Somme := Somme + N div I;

if Somme = N then
WriteLn(N, ' est un nombre parfait') else
WriteLn(N, ' n''est pas un nombre parfait');

ReadLn;
{ TODO -oUser -cConsole Main : placez le code ici }
end.

                
3
Profil bloqué
1 avril 2016 à 20:44
Lire : Les quatre premiers nombres parfaits sont : 6, 28, 496, 8128
0