求最小公倍数的公式为lcm(a,b) = a*b/gcd(a, b)
要注意这个公式只适用于一次求两个数的最小公倍数
若要一次求多个数的,需lcm( a1, a2, ..., an) = M/gcd(M/a1, M/a2, ..., M/an)其中M为a1*a2*...*an
代码如下:
#include <stdio.h>
int gcd(int a, int b) {
return b==0 ? a : gcd(b, a%b);
}
int main(void) {
int n, m, a, lcm;
scanf("%d", &n);
while(n--) {
scanf("%d", &m);
lcm = 1;
while(m--) {
scanf("%d", &a);
lcm = lcm/gcd(lcm,a)*a;
}
printf("%d\n", lcm);
}
return 0;
}