Đối với bất cứ ai đang tìm kiếm mã làm việc nhanh chóng, hãy thử điều này:
Tôi đã viết một chức năng lcm_n(args, num) tính toán và trả về lcm của tất cả các số trong mảng args. Tham số thứ hainum là số lượng các số trong mảng.
Đặt tất cả những số đó vào một mảng args và sau đó gọi hàm nhưlcm_n(args,num);
Chức năng này trả về lcm của tất cả các số đó.
Dưới đây là việc thực hiện chức năng 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);
}
}
Chức năng này cần dưới hai chức năng để làm việc. Vì vậy, chỉ cần thêm chúng cùng với nó.
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;
}