hdu 1019 Least Common Multiple

来源:互联网 发布:2017淘宝刷法爆款 编辑:程序博客网 时间:2024/06/17 01:46

题意要求n个数的lcm,而对于任意的两个数a,b来说 LCM(a,b)=a*b/gcd(a,b),其中gcd(a,b)是a,b的最大公约数,我们利用这个公式就可以很容易的得出答案

PS:一开始我没有处理m=1的情况导致程序超时,这是我自己编程不严谨造成的,下次一定改正。

#include <cstdio>#include <cmath>#include <iostream>using namespace std;long long gcd(long long a,long long b){    if (b==0) return a;    else return gcd(b,a%b);}int main(){    int N;    while (scanf("%d",&N)!=EOF)    {        while (N--)        {            int m;            scanf("%d",&m);            long long a,b;            a=1;            while (m--)            {                scanf("%I64d",&b);                a=a/gcd(a,b)*b;            }            printf("%I64d\n",a);        }    }    return 0;}


0 0
原创粉丝点击