#include <bits/stdc++.h>
using namespace std;
struct frac {
  double x, y;
};
double getdist(frac a, frac b) { return fabs(a.x / a.y - b.x / b.y); }
int gcd(int a, int b) {
  if (a == 0 || b == 0) return a + b;
  if (a > b)
    return gcd(a % b, b);
  else
    return gcd(b % a, a);
}
int main() {
  frac opt, need, best;
  int n;
  cin >> need.x >> need.y >> n;
  int g = gcd((int)need.x, (int)need.y);
  need.x /= g;
  need.y /= g;
  if (need.y <= n) {
    cout << need.x << "/" << need.y << endl;
    return 0;
  }
  opt.x = 0;
  opt.y = 1;
  best.x = 0;
  best.y = 1;
  for (int i = 1; i <= n; ++i) {
    opt.y = i;
    opt.x = max(0.0, opt.x - 10);
    double dist = getdist(need, opt);
    double pd;
    do {
      pd = dist;
      ++opt.x;
      dist = getdist(need, opt);
      if (dist < getdist(need, best)) {
        best.x = opt.x;
        best.y = opt.y;
      }
    } while (dist < pd + 0.0);
  }
  cout << best.x << "/" << best.y << "\n";
  return 0;
}
