思路:按照求两个数的最小公倍数思想,边输入边计算。利用公式 两个数的最小公倍数=两个数的乘积 / 两个数的最大公因数(在本题中先除再乘,防止数据溢出);求最大公因数采用辗转相除法。
#include<iostream>
using namespace std;
//求最大公约数
int gcd(int a,int b)
{
if(b==0)return a;
else
{
gcd(b,a%b);
}
}
int main()
{
int n;
int count1;
cin>>n;
while(n--)
{
cin>>count1;
int a=1;
int lcm=1;
int x;
for(int i=0;i<count1;i++)
{
cin>>x; //边输入边计算
lcm=a/gcd(a,x)*x; //先除再乘可以防止数据溢出 应用公式为 最小公倍数=两数乘积/最大公约数
a=lcm;
}
cout<<a<<endl;
}
}