func_code_string: #include <bits/stdc++.h>   using namespace std;   long long int spf[100000 + 1];   long long int const MAXN = 100001;   long long int modex(long long int x, long long int y, long long int p);   void getZarr(string str, long long int Z[]);   void sieve();   vector<long long int> getFactorization(long long int x);   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);     ;     long long int a, b;     cin >> a >> b;     for (long long int x = 1; x < a; x++) {       long long int temp = sqrt(a * a - x * x);       if (temp * temp == a * a - x * x) {         if ((b * x) % a == 0 && (b * temp) % a == 0) {           if (x == -(b * temp) / a || temp == (b * x) / a) continue;           cout <<  YES  <<   n ;           cout << 0 <<     << 0 <<   n ;           cout << x <<     << temp <<   n ;           cout << -(b * temp) / a <<     << (b * x) / a <<   n ;           return 0;         }       }     }     cout <<  NO  <<   n ;   }   void getZarr(string str, long long int Z[]) {     Z[0] = 0;     long long int n = str.length();     long long int L, R, k;     L = R = 0;     for (long long int i = 1; i < n; i++) {       if (i > R) {         L = R = i;         while (R < n && str[R - L] == str[R]) R++;         Z[i] = R - L;         R--;       } else {         k = i - L;         if (Z[k] < R - i + 1)           Z[i] = Z[k];         else {           L = i;           while (R < n && str[R - L] == str[R]) R++;           Z[i] = R - L;           R--;         }       }     }   }   long long int modex(long long int x, long long int y, long long int p) {     long long int res = 1;     x = x % p;     while (y > 0) {       if (y & 1) res = (res * x) % p;       y = y >> 1;       x = (x * x) % p;     }     return res;   }   void sieve() {     spf[1] = 1;     for (int i = 2; i < MAXN; i++) spf[i] = i;     for (int i = 4; i < MAXN; i += 2) spf[i] = 2;     for (int i = 3; i * i < MAXN; i++) {       if (spf[i] == i) {         for (int j = i * i; j < MAXN; j += i)           if (spf[j] == j) spf[j] = i;       }     }   }   vector<long long int> getFactorization(long long int x) {     vector<long long int> ret;     while (x != 1) {       ret.push_back(spf[x]);       x = x / spf[x];     }     return ret;   }   