Wenn Sie nach schnell arbeitendem Code suchen, versuchen Sie Folgendes:
Ich habe eine Funktion geschrieben lcm_n(args, num) , die die lcm aller Zahlen im Array berechnet und zurückgibt args. Der zweite Parameter numist die Anzahl der Zahlen im Array.
Fügen Sie alle diese Zahlen in ein Array ein argsund rufen Sie dann die Funktion wie auflcm_n(args,num);
Diese Funktion gibt die lcm aller dieser Zahlen zurück.
Hier ist die Implementierung der Funktion 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);
}
}
Diese Funktion benötigt weniger als zwei Funktionen, um zu funktionieren. Fügen Sie sie einfach hinzu.
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;
}