Tester l'algorithme :


(cliquer sur le bouton ci-dessus pour lancer ou relancer l'exécution de l'algorithme)

Un nombre parfait est un nombre entier n strictement supérieur à 1 qui est égal à la somme de ses diviseurs n non compris.

Le premier nombre parfait est 6, car 1, 2, et 3 sont les diviseurs stricts de 6 et 1 + 2 + 3 = 6.

Allez-voir :   et NOMBRES - Curiosités, théorie et usages

Résultat :

Code de l'algorithme :
VARIABLES
  x EST_DU_TYPE NOMBRE
  t EST_DU_TYPE LISTE
  i EST_DU_TYPE NOMBRE
  diviseur EST_DU_TYPE NOMBRE
  resultat EST_DU_TYPE NOMBRE
  intermediaire EST_DU_TYPE NOMBRE
  Preuve EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
  Preuve PREND_LA_VALEUR 0
  LIRE x
  diviseur PREND_LA_VALEUR 2
  t[0] PREND_LA_VALEUR 1
  i PREND_LA_VALEUR 1
  TANT_QUE (diviseur <= x / 2) FAIRE
    DEBUT_TANT_QUE
    resultat PREND_LA_VALEUR x / diviseur
    intermediaire PREND_LA_VALEUR floor(resultat)
    SI (intermediaire == resultat) ALORS
      DEBUT_SI
      t[i] PREND_LA_VALEUR diviseur
      i PREND_LA_VALEUR i + 1
      FIN_SI
    diviseur PREND_LA_VALEUR diviseur + 1
    FIN_TANT_QUE
  i PREND_LA_VALEUR i - 1
  TANT_QUE (i >= 0 ) FAIRE
    DEBUT_TANT_QUE
    Preuve PREND_LA_VALEUR Preuve + t[i]
    AFFICHER t[i]
    i PREND_LA_VALEUR i - 1
    FIN_TANT_QUE
  AFFICHER "------------------------------------"
  AFFICHER Preuve
  SI (x == Preuve) ALORS
    DEBUT_SI
    AFFICHER x
    AFFICHER " est un nombre parfait"
    FIN_SI
    SINON
      DEBUT_SINON
      AFFICHER x
      AFFICHER " n'est pas un nombre parfait"
      FIN_SINON
FIN_ALGORITHME