func_code_string: #include <bits/stdc++.h>   using namespace std;   const int INF = (int)1e9 + 7, mod = (int)1e9 + 9, pw = 31, N = (int)1e5 + 123,             M = (int)1e6 + 123;   const double eps = 1e-11;   const unsigned long long inf = 5e18 + 1;   unsigned long long n, a, b, x, m, ans;   bool check = 0;   unsigned long long binpow(unsigned long long a, unsigned long long b) {     unsigned long long rec = 0;     while (b) {       if (b % 2) {         rec = rec + a;         b--;       } else {         a = a + a;         b /= 2;       }       if (rec > n || a > n) {         check = 1;         return 0;       }     }     return rec;   }   long long gcd(long long x, long long y) { return (y ? gcd(y, x % y) : x); }   int main() {     ios_base::sync_with_stdio(0);     cin.tie(NULL);     cin >> n >> a >> b;     ans = min(n, min(a, b) - 1);     m = binpow(a, b / gcd(a, b));     if (check) {       cout << ans / gcd(ans, n) <<  /  << n / gcd(ans, n);       return 0;     }     ans += ((n / m) - 1) * min(a, b);     ans += min((n / m) * m + min(a, b) - 1, n) - (n / m) * m + 1;     cout << ans / gcd(ans, n) <<  /  << n / gcd(ans, n);     return 0;   }   