关键在于
a,b两个数,最小公倍数=a*b/a和b的最大公约数
a,b两个数大的减小的不断相减运算,直到两个数最后相等即为最大公约数。
#include <stdio.h>
//gcd函数求最大公约数
int gcd(int a,int b)
{
while(a!=b)
if(a>b) a-=b;
else b-=a;
return a;
}
int n,m;
int main()
{
scanf("%d",&n);//表示测试数据的组数
while(n--)
{
scanf("%d",&m);//每组的数据个数
int common;
int number;
scanf("%d",&common);//输入第一个数,当做最大公倍数
while(--m)
{
scanf("%d",&number);//依次输入数据m-1个
common=common*number/gcd(common,number);//输入一个数就求和之前一个数的最小公倍数
}
printf("%d\n",common);//输出这组数据的最小公倍数
}
return 0;
}