Para cualquiera que busque un código de trabajo rápido, intente esto:
Escribí una función lcm_n(args, num) que calcula y devuelve el mcm de todos los números en la matriz args. El segundo parámetro numes el recuento de números en la matriz.
Ponga todos esos números en una matriz argsy luego llame a la función comolcm_n(args,num);
Esta función devuelve el mcm de todos esos números.
Aquí está la implementación de la función 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);
}
}
Esta función necesita debajo de dos funciones para funcionar. Entonces, solo agrégalos junto con él.
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;
}