hdu 2503 1713 1108 最小公倍数&最大公约数

gcd模板:

__int64 gcd(__int64 a,__int64 b)
{
    retur b==0?a:gcd(b,a%b);
}

 

1108:

#include<iostream>
#include<cstdio>
using namespace std;
__int64 gcd(__int64 a,__int64 b)
{
    return b==0?a:gcd(b,a%b);
}
int main()
{
    int a,b;
    while(scanf("%d%d",&a,&b)!=EOF)
    {
        printf("%d\n",a*b/gcd(a,b));
    }
    return 0;
}


 


2503:

#include<iostream>
using namespace std;
__int64 gcd(__int64 a,__int64 b)
{
    return b==0?a:gcd(b,a%b);
}
int main()
{
    __int64 n,a,b,c,d,k,tmp,m;
    cin>>n;
    while(n--)
    {
        cin>>a>>b>>c>>d;
        tmp=gcd(b,d);
        m=a*d/tmp+c*b/tmp;
        k=gcd(m,b*d/tmp);
    }
    return 0;
}


1713:

#include<iostream>
#include<cstdio>
using namespace std;
__int64 gcd(__int64 a,__int64 b)
{
    return b ==0 ? a:gcd(b,a%b);
}
int main()
{
    __int64 a,b,c,d,n,k,m,tmp;
    cin>>n;
    while(n--)
    {
        scanf("%I64d%*c%I64d %I64d%*c%I64d",&a,&b,&c,&d);
        tmp=gcd(a*d,b*c);
        k=gcd(a*b*c*d,b*d*tmp);
        if(tmp*b*d==k)printf("%I64d\n",a*b*c*d/k);
        else printf("%I64d/%I64d\n",a*b*c*d/k,tmp*b*d/k);
    }
    return 0;
}


 

posted @ 2013-08-08 10:11  amourjun  阅读(139)  评论(0编辑  收藏  举报