题目描述
分数化简是数学中经常运用的知识点之一。
编写程序,对于q次询问,每次询问一组分子分母,要求将分子分母化至最简
输入格式
第一行一个整数q
接下来的q行,每行两个整数x和y,分别表示分子和分母
输出格式
q行,每行对应一次询问的答案
样例数据
样例输入1
5
3 1
1 4
5 10
21 14
1331 22
样例输出1
3 1
1 4
1 2
3 2
121 2
数据范围
对于40%的数据,1≤x,y≤10^9,1≤q≤10^5
对于100%的数据,1≤x,y≤10^18 , 1≤q≤10^5
---------------------------------------------------------------------------------------------------------------------------------
思路
这道题的思路很简单,我们找到分母和分子的最大公因数,然后将分母和分子都除以最大公因数,这道题就完成了
不知道怎么求最大公因数看这篇文章:【数论】最大公因数和最小公倍数_ptyz306的博客-CSDN博客
---------------------------------------------------------------------------------------------------------------------------------
代码
#include<bits/stdc++.h>
using namespace std;
int f(long long a,long long b){
if(b==0){
return a;
}
f(b,a%b);
}
int main(){
long long q;
cin>>q;
for(int i=1;i<=q;i++){
long long a,b,c;
cin>>a>>b;
c=f(a,b);
a/=c;
b/=c;
cout<<a<<" "<<b<<endl;
}
return 0;
}//分数化简
这道题还是很简单的