分析:对于求分数的最小公倍数,形如a/b与c/d,可以先求a*d和c*b的最小公倍数,求得的最小公倍数/(b*d)即为两个分数的最小公倍数
#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
long long gcd(long long a,long long b)
{
long long r;
while((r=a%b)!=0)
{
a=b;
b=r;
}
return b;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
long long a,b,c,d;
scanf("%I64d/%I64d %I64d/%I64d",&a,&b,&c,&d);
a=a*d;
c=c*b;
long long m=a*c/gcd(a,c);
if(m%(b*d)==0)printf("%I64d\n",m/(b*d));
else
printf("%I64d/%I64d\n",m/gcd(m,b*d),b*d/gcd(m,b*d));
}
}
原文:http://www.cnblogs.com/xuxueyang/p/4279592.html