两个分数的最大公约数和最小公倍数

在这里插入图片描述
传送门

#include<cstdio>
#include<iostream>
using namespace std;
typedef long long ll;
int t;
ll m,n,x,y;
ll gcd(ll a,ll b){
	return b>0?gcd(b,a%b):a;
}
ll lcm(ll a,ll b){
	return a*b/gcd(a,b);
}
int main(){
	scanf("%d",&t);
	while(t--){
		scanf("%lld%lld%lld%lld",&m,&n,&x,&y);
		int p=gcd(m,n);
		m/=p;n/=p;//注意m与n除得是p
		p=gcd(x,y);
		x/=p;y/=p;//注意
		printf("%lld/%lld %lld/%lld\n",gcd(m,x),lcm(n,y),lcm(m,x),gcd(n,y));
	}
	return 0;
}
发布了115 篇原创文章 · 获赞 3 · 访问量 1758

猜你喜欢

转载自blog.csdn.net/qq_43721152/article/details/104968227