Nombres parfaits

sweetwink Messages postés 91 Statut Membre -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
ca c 1 nouvo programme kom d'habitude je poste mon travail et celui qui mle corrige sera le bienvenu
pour un programme qui permet d'afficherles nombres parfaits inférieuurs a 1000

#include <stdio.h>
void main()
{
int i , n,

do
printf ( "saisir le nombre ",n);
scanf(n);
for (i=1;i<=n;i++)
{
i=1;
while (n%i=0)
{
printf (" i est un divseur de n");
i++;
}
if ( som+i=n)
printf ( " n n'est pas un nombre parfait");
else
printf("n n'est pa un nombre parfait");
}
while(n >1000)
}
Configuration: Windows XP
Internet Explorer 7.0

1 réponse

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Salut,
    Regarde bien ton code corrigé, et compare le bien avec ta version.
    Attention à l'utilisation de printf, scanf et surtout l'algorithme.
    En C, l'égalité est == (double égal). L'affectation est = (simple égal).
    Ton algo initial n'était pas bon. Par exemple, i va de 1 à n-1. n ne doit pas être pris en considération pour le calcul du nombre parfait.
    #include <stdio.h>
    
    int main(void)
    {
        int i,n,som;
        do{
            printf("saisir le nombre : ");
            scanf("%d",&n);
        }while(n>1000);
        som=0;
        for (i=1;i<n;i++){
            if(n%i==0){
                printf("%d est un diviseur de n\n",i);
                som+=i;
            }
        }
        if (som==n)
            printf("%d est un nombre parfait\n",n);
        else
            printf("%d n'est pas un nombre parfait\n",n);
    
        return 0;
    }
    

    Note : Pourquoi se limiter à 1000 pour le nombre parfait ? Le C peut aller bien plus haut ;)
    Cdlt
    1