hdu 1713 相遇周期

求分数的最小公倍数。对于a/b c/d 先化简为最简分数,分数最小公倍数=分子的最小公倍数/分母的最大公约数。

#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<iomanip>
#include<cmath>
#include<string>
using namespace std;
__int64
gcd(__int64 a,__int64 b)
{

    __int64
t;
    if
(a<b) swap(a,b);
    while
(b)
    {

        t=a;
        a=b;
        b=t%b;
    }

    return
a;
}

int
main()
{

    int
t,a,b,c,d,g;
    __int64
x,y,z;
    cin>>t;
    while
(t--)
    {

        scanf("%d/%d %d/%d",&a,&b,&c,&d);
        g=gcd(a,c);
        x=a/g*c;
        b*=c/g;
        d*=a/g;
        y=gcd(b,d);
        z=gcd(x,y);
        if
(y==z)
            printf("%I64d ",x/z);
        else
printf("%I64d/%I64d ",x/z,y/z);
    }

    return
0;
}

原文地址:https://www.cnblogs.com/xin-hua/p/3196751.html