func_code_string: #include <bits/stdc++.h>   using namespace std;   vector<int> v;   int extgcd(int a, int b, long long &x, long long &y) {     int d = a;     if (b != 0) {       d = extgcd(b, a % b, y, x);       y -= (a / b) * x;     } else {       x = 1;       y = 0;     }     return d;   }   int main() {     int n;     scanf( %d , &n);     int i = 2;     int t = n;     while (t > 1 && i <= sqrt(n)) {       if (t % i == 0) {         while (t % i == 0) t /= i;         v.push_back(i);       }       i++;     }     if (t > 1) v.push_back(t);     if (v.size() == 1) {       printf( NO n );       return 0;     }     int j;     bool f = true;     for (i = 0; i < v.size() && f; i++)       for (j = i + 1; j < v.size(); j++) {         long long p, q;         extgcd(v[i], v[j], p, q);         p *= n - 1;         q *= n - 1;         int a = v[i], b = v[j];         if (q < 0) {           swap(a, b);           swap(p, q);         }         long long t = (-p) / b + 1;         p += b * t;         q -= a * t;         if (q > 0) {           printf( YES n2 n );           printf( %d %d n%d %d n , (int)p, (int)n / a, (int)q, (int)n / b);           f = false;           break;         }       }     if (f) printf( NO n );     return 0;   }   