解题报告:求多个数的最小公倍数,其实还是一样,只需要一个一个求就行了,先将答案初始化为1,然后让这个数依次跟其他的每个数进行求最小公倍数,最后求出来的就是所有的数的最小公倍数。也就是多次GCD.

1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 using namespace std; 5 6 typedef __int64 INT; 7 INT GCD(INT a,INT b) { 8 return a%b==0? b:GCD(b,a%b); 9 } 10 int main() { 11 int T,n; 12 scanf("%d",&T); 13 while(T--) { 14 scanf("%d",&n); 15 INT c = 1,x; 16 while(n--) { 17 scanf("%I64d",&x); 18 INT tempa = x,tempb = c; 19 if(tempa < tempb) 20 swap(tempa,tempb); 21 c/=GCD(tempa,tempb); 22 c *= x; 23 } 24 printf("%I64d ",c); 25 } 26 return 0; 27 } 28