Pour tous ceux qui recherchent un code de travail rapide, essayez ceci:
J'ai écrit une fonction lcm_n(args, num) qui calcule et renvoie le lcm de tous les nombres du tableau args. Le deuxième paramètre numest le nombre de nombres dans le tableau.
Mettez tous ces nombres dans un tableau args, puis appelez la fonction commelcm_n(args,num);
Cette fonction renvoie le lcm de tous ces nombres.
Voici l'implémentation de la fonction lcm_n(args, num):
int lcm_n(int args[], int num) //lcm of more than 2 numbers
{
int i, temp[num-1];
if(num==2)
{
return lcm(args[0], args[1]);
}
else
{
for(i=0;i<num-1;i++)
{
temp[i] = args[i];
}
temp[num-2] = lcm(args[num-2], args[num-1]);
return lcm_n(temp,num-1);
}
}
Cette fonction a besoin de moins de deux fonctions pour fonctionner. Alors, ajoutez-les simplement avec lui.
int lcm(int a, int b) //lcm of 2 numbers
{
return (a*b)/gcd(a,b);
}
int gcd(int a, int b) //gcd of 2 numbers
{
int numerator, denominator, remainder;
//Euclid's algorithm for computing GCD of two numbers
if(a > b)
{
numerator = a;
denominator = b;
}
else
{
numerator = b;
denominator = a;
}
remainder = numerator % denominator;
while(remainder != 0)
{
numerator = denominator;
denominator = remainder;
remainder = numerator % denominator;
}
return denominator;
}