尽管是一个CS专业的学生,小B的数学基础很好并对数值计算有着特别的兴趣,喜欢用计算机程序来解决数学问题。现在,她正在玩一个数值变换的游戏。她发现计算机中经常用不同的进制表示同一个数,如十进制数123表达为16进制时只包含两位数7、11,B,用八进制表示时为三位数1、7、3。按不同进制表达时,各个位数的和也不同,如上述例子中十六进制和八进制中各位数的和分别是18和11。

#include<iostream>
#include<vector>
#include <algorithm>  
#include<iomanip>
#include<string>
#include<numeric>
#include<set>

using namespace std;

int toNum(int num, int i)
{
        int sum = 0;
        while (num!=0)
        {
                sum += (num%i);
                num = num / i;
        }
        return sum;
}

void getNum(int n, int m)
{
        for (int i = m; i > 1; i--)
        {
                if (n%i == 0 && m%i==0) 
                {
                        n = n / i;
                        m = m / i;
                        break;
                }
        }
        cout << n << "/" << m << endl;
}

int main()
{
        int n;
        while (cin>>n)
        {
                float sum = 0;
                for (int i = 2; i < n; i++)
                {
                        sum += toNum(n,i);
                }
                getNum(sum,n-2);
        }
        
        
        
}