题解:求n个数的最小公倍数,一个一个算就可以了,需要注意的是LCM先除GCD再乘,因为先乘有可能会超范围,1WA的代价。
#include <cstdio>
int T,n,a,b;
int gcd(int a,int b){if(b==0)return a;return gcd(b,a%b);}
int main(){
scanf("%d",&T);
while(T--){
scanf("%d",&n);a=1;
for(int i=0;i<n;i++){
scanf("%d",&b);
a=a/gcd(a,b)*b;
}printf("%d\n",a);
}return 0;
}
本文介绍了一种高效求解多个整数最小公倍数的方法,通过逐步计算,利用辗转相除法(欧几里得算法)求最大公约数(GCD),进而得到最小公倍数(LCM)。此算法避免了直接乘法可能导致的溢出问题,适用于处理大量整数的最小公倍数计算。
144

被折叠的 条评论
为什么被折叠?



