您的位置:首页 > 其它

HDU 1019 Least Common Multiple GCD

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

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;

typedef __int64 INT;
INT GCD(INT a,INT b) {
return a%b==0? b:GCD(b,a%b);
}
int main() {
int T,n;
scanf("%d",&T);
while(T--) {
scanf("%d",&n);
INT c = 1,x;
while(n--) {
scanf("%I64d",&x);
INT tempa = x,tempb = c;
if(tempa < tempb)
swap(tempa,tempb);
c/=GCD(tempa,tempb);
c *= x;
}
printf("%I64d\n",c);
}
return 0;
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: