Solution

chouchouuu Messages postés 1 Statut Membre -  
mamiemando Messages postés 34243 Date d'inscription   Statut Modérateur Dernière intervention   -
ecrire un programme qui permet d'afficher tous les nombres parfaits inférieures à 1000.
j'aimerai avoir une solution à cet exercice

2 réponses

mamiemando Messages postés 34243 Date d'inscription   Statut Modérateur Dernière intervention   7 898
 
Bonjour chouchou

1) Je pense que ce serait pas mal de revoir la charte d'utilisation du forum pour commencer. Par exemple commencer ton message par un "Bonjour" et finir par un "D'avance merci pour votre aide" ou formule dans le genre
2) On n'est pas là pour faire tes exercices à ta place. La moindre des choses ce serait de nous donner ce que tu as commencé à faire pour qu'on ait pas la sensation de faire ton job à ta place
3) Il est précisé au moment de poster ton message de mettre un sujet clair. Par exemple si tu programmes en C, un sujet comme "[C]nombre parfaits" aurait été nettement plus clair.
4) Tu n'as même pas précisé dans quel langage tu programmais.

Cordialement
0
chouchouuu
 
Bonjour dslée encore, mais je ne programme en rien du tout, je suis pas une informaticienne, je suis tombée sur ce forum en tapant récupération de mot de passe sur google, dc dslée pour avoir oublié les formules de politesse mais ce n'était pas mon intention et dslée d'avoir cru que vous auriez pu m'aider, bref bonne soirée
0
mamiemando Messages postés 34243 Date d'inscription   Statut Modérateur Dernière intervention   7 898
 
Pas de soucis on peut t'aider mais il faut au moins nous dire dans quel langage tu veux que le programme soit écrit. Ou alors il faut demander un pseudo code.

D'après ce qui est dit là un nombre parfait est égal à la somme de ses diviseurs stricts
https://fr.wikipedia.org/wiki/Nombre_parfait

La plupart des langages de programmation proposent l'opérateur modulo (souvent noté %) permettant de faire calculer le reste d'une division euclidienne. Ainsi il suffit pour voir si un nombre n est parfait de parcourir les valeurs i de 1 à n-1 telles que (i % n == 0). A chaque fois qu'une telle valeur est trouvée on l'ajoute dans un compteur s. Si à la fin s == n, alors n est parfait.

Il suffit que ton programme principal (main) appelle cette fonction pour toutes les valeurs de 2 à 1000 pour tester

En C++ ca donne ça
#include <iostream>

bool est_parfait(unsigned n){
    unsigned s = 0;
    for(unsigned i = 1;i < n;++i){
        if(n % i == 0) s += i;
    }
    return (s == n);
}

int main(){
    // tester les nombres entiers de 2 à 1000
    for(unsigned n = 2;n <= 1000;++n){
        if(est_parfait(n)) std::cout << n << " est parfait" << std::endl;
    }
    return 0;
}

Ce qui donne à l'exécution :
6 est parfait
28 est parfait
496 est parfait

Bonne chance
0