Nombre parfait en c

Fermé
john - 16 nov. 2007 à 13:57
 miole - 24 févr. 2011 à 12:23
Bonjour,
mon programme ( en c) doit rechercher les nombres parfait <= 500, pour chacun d'eux il affiche le nombre ainsi que l'ensemble de ses diviseurs présenté sous forme d'addition
voici mon programme mais comment l'améliorer pour qu'il affiche l'ensemble des diviseurs sous fourme d'addition?

merci!!


{ int nombre,i, sdiv; // declaration de tes variables que des entiers







printf("\ntapez votre nombre:");
scanf("%d",&nombre);

while (nombre <= 500)
{

sdiv=0;
for (i=(nombre -1);i>0; i--)
{
if (nombre%i ==0)
{ sdiv=sdiv+i;}
}
if (nombre==sdiv)
{
printf ("%d est un nombre parfait",nombre);
else
printf ("%d n'est pas un nombre parfait",nombre);

} /

printf("\ntapez votre nombre:")

scanf("%d",&nombre);
}


}fermeture du MAIN

3 réponses

mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
16 nov. 2007 à 18:02
va voir ici
2
ikramaitdriss Messages postés 9 Date d'inscription mercredi 18 novembre 2009 Statut Membre Dernière intervention 18 décembre 2009 1
23 nov. 2009 à 13:40
bjr tt le monde svp vs pouvai m'aidez a faire le programme en c d'un nombre parfait sans utiliser les tableau
1
oui mais ce programme n'affiche pas l'ensemble des diviseurs sous forme d'addition, comment faire pour afficher cela?
merci
0
#include<iostream>
main()
{

int a;
int aide=0;
int i;
int j;
int k=0,tab[33];
printf("saisir un nombre maximal ");
std::cin>>a;
for(j=2;j<a;j++)
{
aide=0;
for(i=1;i<j;i++)
{
if(j%i==0)
{
aide+=i;
}
}
if(aide==j)
{
printf("%d est un nombre parfait \n",j);
for(k=1;k<aide;k++){

if((aide%k)==0)
{
printf("%d",k);
printf("+");
}
}
printf("\n");
}
}

getchar();getchar();
}
0
pourqoui il y a en beaucoup d'accollade et est se qu'il y a un autre methode
0