[tab name=’Exercice langage C’]
Exercice langage C
Enoncé:
Deux nombres M et N sont appelés nombres_amis si la somme des diviseurs de M est égale à N et la somme des diviseurs de N est égale à M
Travail à Faire:
Ecrire une fonction amis qui retourne le nombre_amis (s’il existe) d’un nombre passé en paramètre, cette fonction utilise la fonction somme_div de l’exercice Précédent.
Ecrire un programme principal qui affiche tous les nombres_amis inférieurs à une certaine limite.
[/tab][tab name=’Correction’]
/* Calcul des nombres amis */ #include /* calcul de la somme des diviseurs du parametre nombre */ int somme_div ( int nombre ); /* calcul de l'ami du parametre nombre */ int amis ( int nombre ); int main ( ) { int nombre, limite, nombre_ami; printf("Limite : "); scanf("%d", &limite); for (nombre=1; nombre<=limite; nombre++) { nombre_ami = amis(nombre); if (nombre_ami != nombre) { printf("%d et %d sont amis\n", nombre, nombre_ami); } } return 0; } int somme_div ( int nombre ) { int i, somme = 0; for (i=1; i<=nombre/2; i++) { if (nombre % i == 0) { somme = somme + i; } } return somme; } int amis ( int nombre ) { int unAmis; unAmis = somme_div(nombre); if (somme_div(unAmis) == nombre) { return unAmis; } else { return nombre; } }
Exercice langage C
[/tab][end_tabset skin= »ginger » ]