#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:102400000,102400000")
using namespace std;
const int MOD = 1000000000;
const int MAXM = 25000;
const int INF = 1 << 30;
const int N = 15000;
inline char rdc() {
  scanf(" ");
  return getchar();
}
inline int rdui() {
  static int x, c;
  while ((c = getchar()) < '0')
    ;
  x = c - '0';
  while ((c = getchar()) >= '0') x = x * 10 + c - '0';
  return x;
}
template <class T>
inline bool updateMin(T& a, T b) {
  return a > b ? a = b, true : false;
}
template <class T>
inline bool updateMax(T& a, T b) {
  return a < b ? a = b, true : false;
}
int a, b, c, d;
int gcd(int a, int b) {
  if (a == 0) return b;
  if (b == 0)
    return a;
  else
    return gcd(b, a % b);
}
int cca, ccb, ccd, ccc;
bool match(int aa, int bb, int cc, int dd) { return aa * dd < bb * cc; }
int main() {
  cin >> a >> b >> c >> d;
  int cc = gcd(a * d, c);
  cca = a * d / cc, ccb = c / cc;
  cc = gcd(b * c, d);
  ccc = b * c / cc, ccd = d / cc;
  if (match(cca, ccb, b, 1)) {
    int vv = gcd(b * ccb - cca, b * ccb);
    printf("%d/%d\n", (b * ccb - cca) / vv, b * ccb / vv);
  } else {
    int vv = gcd(a * ccd - ccc, ccd * a);
    printf("%d/%d\n", (a * ccd - ccc) / vv, ccd * a / vv);
  }
  return 0;
}
