求一排数的最小公倍数,额,题目就这么长,思路......也没什么好说的,两个数的最小公倍数就是这两个数的乘积除以这两个数的最大公约数,而最大公约数直接GCD就行了,GCD这个简单的算法也没什么好说的,直接放代码了。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
long long a[10005];
int gcd(int a,int b)
{
return a%b?gcd(b,a%b):b;
}
int main()
{
int T;
int n;
long long t,k;
int i;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
t=a[0];
for(i=1;i<n;i++)
{
k=gcd(t,a[i]);
t=t*a[i]/k;
}
cout<<t<<endl;
}
return 0;
}