题意要求n个数的lcm,而对于任意的两个数a,b来说 LCM(a,b)=a*b/gcd(a,b),其中gcd(a,b)是a,b的最大公约数,我们利用这个公式就可以很容易的得出答案
PS:一开始我没有处理m=1的情况导致程序超时,这是我自己编程不严谨造成的,下次一定改正。
#include <cstdio>
#include <cmath>
#include <iostream>
using namespace std;
long long gcd(long long a,long long b)
{
if (b==0) return a;
else return gcd(b,a%b);
}
int main()
{
int N;
while (scanf("%d",&N)!=EOF)
{
while (N--)
{
int m;
scanf("%d",&m);
long long a,b;
a=1;
while (m--)
{
scanf("%I64d",&b);
a=a/gcd(a,b)*b;
}
printf("%I64d\n",a);
}
}
return 0;
}