Algorithme nombre parfait

caracawa Messages postés 1 Statut Membre -  
 Profil bloqué -
comment ecrire un algorithme qui di si le nombre saisi est parfait ou pas

1 réponse

  1. Profil bloqué
     
    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
    1. Profil bloqué
       
      Lire : Les quatre premiers nombres parfaits sont : 6, 28, 496, 8128
      0