题意是求一组数的最小公倍数,不用存,每次输入即刻处理即可。
补充一点:两个自然数的最大公约数与它们的最小公倍数的乘积等于这两个数的乘积。
代码如下:
1 #include <bits/stdc++.h> 2 using namespace std; 3 int gcd(int a,int b) 4 { 5 return !b?a:gcd(b,a%b); 6 } 7 int main() 8 { 9 int t,m,n,tmp; 10 scanf("%d",&t); 11 while(t--) 12 { 13 tmp = 1; 14 scanf("%d",&m); 15 while(m--) 16 { 17 scanf("%d",&n); 18 tmp = tmp/gcd(tmp,n)*n; 19 } 20 printf("%d ",tmp); 21 } 22 return 0; 23 }