您的位置:首页 > 其它

HDOJ1019 Least Common Multiple

2014-07-09 13:38 323 查看
大体思路是先求出1,2个数的LCM2,再求LCM2和第3个数的LCM=LCM3,以此类推。

需要注意n=1的情况。

注意题中给的数据范围,为防溢出lcm=a/gcd(a,b)*b 而不是 lcm=a*b/gcd(a,b)(除非你用long long/int64



时间:0毫秒

#include "stdio.h"
int GCD(int a,int b){
return (b==0)?a:GCD(b,a%b);
}
int main(){
int t,n,i,j,a,b,gcd,lcm;
scanf("%d",&t);
for(i=1;i<=t;i++){
scanf("%d",&n);
if(n==1){
scanf("%d",&a);
printf("%d\n",a);
continue;
}
scanf("%d%d",&a,&b);
gcd=GCD(a,b);lcm=a/gcd*b;a=b;
for(j=3;j<=n;j++){
scanf("%d",&b);
gcd=GCD(lcm,b);
lcm=lcm/gcd*b;
}
printf("%d\n",lcm);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  HDOJ 水题 1019 数学