hdu 1019

简单题,刘汝佳的gcd

第一份超时不知道为毛。。。。

留在这里以后看

#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;


int gcd(int a,int b)
{
    int c;
    while(b)
    {
        c=a%b;
        a=b;
        b=c;
    }
    return a;
}


int main()
{
    freopen("t.txt","r",stdin);
    int ca,c,l;
    scanf("%d",&ca);
    while(ca--)
    {
        int n,a,b;
        scanf("%d",&n);
        scanf("%d%d",&a,&b);
        if(a<b)
        {
            c=a;
            a=b;
            b=c;
        }
        l=a/gcd(a,b)*b;;
        for(int i=2;i<n;i++)
        {
            scanf("%d",&a);
            if(a<l)
            {
                c=a;
                a=l;
                l=c;
            }
            l=a/gcd(a,l)*l;
        }
        printf("%d\n",l);
    }
    return 0;
}
第二份AC

#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;

int gcd(int a,int b)
{
    int c;
    while(b)
    {
        c=a%b;
        a=b;
        b=c;
    }
    return a;
}

int main()
{
    //freopen("t.txt","r",stdin);
    int ca,c,l;
    scanf("%d",&ca);
    while(ca--)
    {
        int n,a=1,b=1;
        scanf("%d",&n);
        for(int i=0;i<n;i++)
        {
            scanf("%d",&a);
            b=a/gcd(a,b)*b;
        }
        printf("%d\n",b);
    }
    return 0;
}


你可能感兴趣的:(hdu 1019)