1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
//Inclure les librairies (bon ok pas de commentaires inutiles xD
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
{
unsigned long x,i,s,s2; //Déclaration des variables
unsigned long xmin, xmax ;
double racine ;
xmin = strtol (argv[1], NULL, 10);
xmax = strtol (argv[2], NULL, 10);
//tout d'abord on boucle sur tous les nbrs
for (x=xmin ; x<=xmax ;x++)
{
s=0;
racine = sqrt((double)x);
//pour chaque nombre on calcule la somme de ses diviseurs à part lui même
for (i=2;i<=racine;i++)
{
if (x%i==0) //On regarde si c'est divisible
{
s=s+i+x/i; //si oui on ajoute au nombre actuel, le diviseur et le diviseur "opposé"
}
}
s++;//On ajoute 1 car 1 divise tout xD
s2=0;
racine = sqrt((double)s) ;
for (i=2;i<=racine;i++) //On cherche les diviseurs de la somme des diviseurs
{
if (s%i==0) //idem
{
s2=s2+i+s/i; //idem
}
}
s2++;
if (s2==x) //si la somme des diviseurs de la somme des diviseurs d'un nombre égale ce nombre, il est amical et on l'affiche :p
{
printf("%d - %d\n",s,x);
}
printf ("Appuyez sur une touche pour continuer...\n");
getchar ();
return 0;
} |
Partager