func_code_string: #include <bits/stdc++.h>   #pragma comment(linker,  /STACK:20000000 )   using namespace std;   int ri() {     int x;     scanf( %d , &x);     return x;   }   long long rll() {     long long x;     scanf( %lld , &x);     return x;   }   void solve() {     long long x;     cin >> x;     set<pair<long long, long long> > result;     result.insert(make_pair(1, x));     result.insert(make_pair(x, 1));     long long tmp = 0;     for (long long k = 2;; k++) {       tmp += (k - 1) * (k - 1);       long long ost = x - tmp;       long long wtf = k * k * k - (k - 1) * k / 2 * k * 2;       if (ost < wtf) {         cerr << k << endl;         break;       }       ost *= 2LL;       if (ost % k == 0) {         ost /= k;         long long n = k;         long long t = ost + (k - 1) * n;         long long m = t / (2 * n - k + 1);         if (m * (2 * n - k + 1) == t) {           result.insert(make_pair(n, m)), result.insert(make_pair(m, n));         }       }     }     cout << result.size() << endl;     for (set<pair<long long, long long> >::iterator it = result.begin();          it != result.end(); it++)       cout << it->first <<     << it->second << endl;   }   int main() {     solve();     return 0;   }   