HDOJ1019 Least Common Multiple

来源:互联网 发布:python初学者 编辑:程序博客网 时间:2024/05/13 04:20

大体思路是先求出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;}


0 0
原创粉丝点击