Exercice langage C : Fonction qui retourne la somme des diviseurs d'un nombre passé en paramètre

Travail à Faire :

Un nombre entier est parfait s'il est égal à la somme de ses diviseurs (sauf lui-même).

Ex : 6 = 1 + 2 + 3 est parfait.

Ecrire une fonction somme_div qui retourne la somme des diviseurs d'un nombre passé en paramètre.

Ecrire une fonction parfait qui teste si un nombre passé en paramètre est parfait et qui retourne

1 s'il l'est et 0 sinon.

Ecrire un programme principal qui affiche tous les nombres parfaits inférieurs à une certaine limite

/* Calcul des nombres parfaits */

#include

/* calcul de la somme des diviseurs du parametre nombre */
int somme_div ( int nombre );

/* test si le parametre nombre est parfait */
int parfait ( int nombre );

int main()
{
int nombre, limite;

printf("Limite : "); scanf("%d", &limite);

for (nombre=1; nombre{
if (parfait(nombre))
{
printf("%d est parfait\n", nombre);
}
}

return 0;
}

int parfait ( int nombre )
{
return (somme_div(nombre) == nombre);
}

int somme_div ( int nombre )
{
int i, somme = 0;
for (i=1; i{
if (nombre % i == 0)
{
somme = somme + i;
}
}
return somme;
}

Article publié le 23 Février 2012 Mise à jour le Lundi, 07 Novembre 2022 15:26 par BENKIRANE Fatima Ezzahra