求多个数的最小公倍数
- Description
-
求n个整数的最小公倍数
- Input
-
多组测试数据,先输入整数T表示组数 然后每行先输入1个整数n,后面输入n个整数k1 k2...kn
- Output
-
求k1 k2 ...kn的最小公倍数
- Sample Input
-
1 3 12 18 6
- Sample Output
- 36
#include<stdio.h>
int gb(int x,int y)
{
int t=1,temp;
if(x<y)
{
temp=x;
x=y;
y=temp;
}
while(t)
{
t=x%y;
x=y;
y=t;
}
return x;
}
int gbs(int s[],int n)
{
int m,i;
for(i=0;i<n-1;i++)
{
m=gb(s[i],s[i+1]);
s[i+1]=s[i]/m*s[i+1]; //否则会RE
}
return s[n-1];
}
int main()
{
int t,n,m,i;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
int s[10000];
for(i=0;i<n;i++)
scanf("%d",&s[i]);
if(n==1)
printf("%d\n",s[0]);
else
{
for(i=0;i<n-1;i++)
m=gbs(s,n);
printf("%d\n",m);
}
}
}