/*求n个数的的最小公倍数,这里运用了辗转相除法*/
#include <stdio.h>
int gcd(int a,int b) //最大公约数算法
{
if(a%b==0)
return b;
else return
gcd(b,a%b);
}
int lcm(int a,int b) //最小公倍数(两数相乘后除以最大公约数)
{
return a/gcd(a,b)*b; //注意先除后乘,否则会造成结果过大
}
int main()
{
int i,repeat,n,a,min;
scanf("%d",&repeat);
while(repeat--)
{
scanf("%d%d",&n,&min);
for(i=1;i<n;i++)
{
scanf("%d",&a);
min=lcm(a,min); //逐个求最小公倍数,又避免了定义数组(不知道数组长度)
}
printf("%d\n",min);
}
return 0;
}
求最大公约数最小公倍数
最新推荐文章于 2022-05-20 18:59:13 发布