输入描述:
输入中有多组测试数据,每组测试数据为一个整数A(1 ≤ A ≤ 5000).
输出描述:
对每组测试数据,在单独的行中以X/Y的形式输出结果。
输入例子1:
5 3
输出例子1:
7/3
2/1
#include <iostream>
#include <sstream>
using namespace std;
int getbitsum(int n, int p)
{
int s = 0;
while (n)
{
s += n % p;
n /= p;
}
return s;
}
int gcb(int a, int b)
{
if (b == 0)
return a;
return gcb(b, a % b);
}
void simplify(int &a, int &b)
{
int d = gcb(a, b);
a /= d;
b /= d;
}
int main() {
int a;
cin >> a;
if (a == 2)
cout << "1/1";
else
{
int sum = 0;
for (int i = 2; i < a; ++i) {
sum += getbitsum(a, i);
}
int tmp = a - 2;
simplify(sum, tmp);
ostringstream s;
s << sum;
s << '/';
s << tmp;
cout << s.str();
}
return 0;
}