#include using namespace std; using i32 = int; using i64 = int64_t; template using vec = vector; using wdgraph = vec>>; #define times(n, i) for (i32 i = 0; i < (n); i++) #define range(n, m, i) for (i32 i = (n); i < (m); i++) #define upto(n, m, i) for (i32 i = (n); i <= (m); i++) #define downto(n, m, i) for (i32 i = (n); i >= (m); i--) #define foreach(xs, x) for (auto &x : (xs)) #define all(xs) (xs).begin(), (xs).end() #define sortall(xs) sort(all(xs)) #define reverseall(xs) reverse(all(xs)) #define uniqueall(xs) erase(unique(all(xs)), (xs).end()) #define maximum(xs) *max_element(all(xs)) #define minimum(xs) *min_element(all(xs)) i64 MOD = 1000000007; int64_t gcd(int64_t x, int64_t y) { while (y > 0) { int64_t r = x % y; x = y; y = r; } return x; } i64 lcm(i64 x, i64 y) { return x*y/gcd(x, y); } i32 main() { i32 a,b,c; cin >> a >> b >> c; i32 d = lcm(lcm(a, b), c); i32 x = (d/a), y = (d/b), z = (d/c); i32 u = z; while(u > 0) { if (x%u == y%u && y%u == z%u) break; u--; } cout << fixed << setprecision(12) << d << "/" << u << endl; return 0; }