问题描述
一个分数一般写成两个整数相除的形式:N/M,其中 M 不为 0。最简分数是指分 子和分母的最大公约数为 1 的分数表示形式。现在给你 N 和 M 的值,请输出他们的最简 分数的值。如果化简后分母为 1,则输出分子的值。例如:N=8,M=6,你应该输出 4/3, 若 N=8,M=2,则你应该输出 4。
输入格式
一行包括 2 个正整数 N和MN 和 MN和M。
输出格式
形如 N/M 的最简分数,若分母为 1,则输出分子的值。
输入样例 1
8 6
输出样例 1
4/3
输入样例 2
8 4
输出样例 2
2
数据范围
25%数据 N,M≤2∗106N, M \le 2 * 10 ^ 6N,M≤2∗106
100% 数据,N,M<=1010N, M <= 10^{10}N,M<=1010
代码
#include <bits/stdc++.h>
using namespace std;
long long n, m, g, fm, fz;
int main() {
cin >> n >> m;
g = __gcd(n, m);
fz = n / g;
fm = m / g;
if (fm == 1)
cout << fz;
else
cout << fz << '/' << fm;
return 0;
}
6362

被折叠的 条评论
为什么被折叠?



