Les 4 premiers nombres parfaits sont connus depuis l'antiquité. Depuis, le total est passé
à 44 nombres parfaits seulement (au 11/09/2006).
Les douze premiers nombres parfaits sont :
6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248
8 128 = 1 + 2 + 4 + 8 + 16 + 32 + 64 + 127 + 254 + 508 + 1 016 + 2 032 + 4 064
33 550 336
8 589 869 056
137 438 691 328
2 305 843 008 139 952 128
2 658 455 991 569 831 744 654 692 615 953 842 176
191 561 942 608 236 107 294 793 378 084 303 638 130 997 321 548 169 216
13 164 036 458 569 648 337 239 753 460 458 722 910 223 472 318 386 943 117
783 728 128
1 447 401 11 546 645 244 279 463 731 260 85 988 481 573 677 491 474 835 889
066 354 349 131 199 152 128
(i) Construire un algorithme qui prend en entrée un entier naturel n et affiche comme
résultat oui ou non selon que n est un nombre parfait ou non.
Étape 1. Lire un nombre n.
Étape 2. Si n est plus petit ou égal à 1 alors écrire non.
Étape 3. Initialiser une variable somme à 0.
Étape 4. Pour chaque valeur de i allant de 1 à la division entière de n par 2
4.1 Si i est un facteur de n alors ajouter i à la variable somme.
Étape 5. Si somme est égale à n alors écrire oui
sinon écrire non.
Étape 6. Fin de l’algorithme.
(ii) D’après vous, en écrivant cet algorithme en C++ et en déclarant les variables de
type long int, combien de nombres parfaits pourriez-vous retrouver ?
En considérant le type de donnée unsigned long int, le plus grand entier que l’on
peut manipuler est : 4 294 967 295. Par conséquent, on pourrait en retrouver 5.