func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 1e5 + 5;   const int MOD = 1e9 + 7;   const int INF = 0x3f3f3f3f;   pair<long long, long long> ans1[N], ans2[N];   long long x;   long long cal(long long n) {     n--;     long long tmp = n * (n + 1) * (2 * n + 1) / 6;     n++;     tmp -= (n * n * n - n * n) / 2;     if (2 * (x - tmp) % (n * n + n)) return -1;     long long m = 2 * (x - tmp) / (n * n + n);     return m;   }   void solve() {     int cnt = 0, tot = 0;     for (int i = 1; i < 1500000; i++) {       long long m = cal((long long)i);       if (m == -1) continue;       if (m < i) break;       ans1[tot++] = make_pair(i, m);       if (m == i) break;       ans2[cnt++] = make_pair(m, i);     }     printf( %d n , tot + cnt);     for (int i = 0; i < tot; i++)       printf( %I64d %I64d n , ans1[i].first, ans1[i].second);     for (int i = cnt - 1; i >= 0; i--)       printf( %I64d %I64d n , ans2[i].first, ans2[i].second);   }   int main() {     scanf( %I64d , &x);     solve();     return 0;   }   