#include <bits/stdc++.h>
using namespace std;
template <typename S, typename T>
void fill_(S& buf, const T& x) {
  fill_n(reinterpret_cast<T*>(&buf), sizeof(buf) / sizeof(T), x);
}
template <typename T>
inline vector<T>& operator+=(vector<T>& ret, const T& x) {
  ret.push_back(x);
  return ret;
}
inline int gcd(const int a, const int b) { return b ? gcd(b, a % b) : a; }
int A;
int main(int argc, char* argv[]) {
  cin >> A;
  int acc = 0;
  for (int a = int(2), CNT_a = int(A); a < CNT_a; ++a) {
    int temp = A;
    while (temp > 0) {
      acc += temp % a;
      temp /= a;
    }
  }
  const int x = gcd(acc, A - 2);
  cout << acc / x << "/" << (A - 2) / x << endl;
  return 0;
}
