求最小公倍数,先求最大公约数,有经典辗转想除法,然后两数最小公倍数就是乘积再除最大公约数,传递过去就行
#include<stdio.h>
static int gcd(int a, int b)
{
if (!a)
return b;
return gcd(b % a, a);
}
int main()
{
int n, m;
scanf("%d", &n);
while (n--)
{
scanf("%d", &m);
int prev = 1, now;
while (m--)
{
scanf("%d", &now);
prev = now / gcd(prev, now) * prev;
}
printf("%d\n", prev);
}
return 0;
}