#include <bits/stdc++.h>   using namespace std;   vector<pair<long long, long long> > v;   long long x;   long long k;   int broj;   int main(void) {     cin >> x;     k = 0;     long long i = 1;     for (long long i = 1; i <= sqrt(x); ++i) {       if (k + i * i > (1000000000000000000)) goto van;       k = k + i * i;       if (x - k < 0) goto van;       if ((2 * (x - k)) % (i * (i + 1)) == 0) {         v.push_back(             pair<long long, long long>(i, i + (2 * (x - k)) / (i * (i + 1))));       }     }   van:;     for (int i = 0; i < v.size(); ++i) {       broj++;     }     for (int i = v.size() - 1; i >= 0; --i) {       if (v[i].second == v[i].first) continue;       broj++;     }     cout << broj << endl;     for (int i = 0; i < v.size(); ++i) {       broj++;       cout << v[i].first <<     << v[i].second << endl;     }     for (int i = v.size() - 1; i >= 0; --i) {       if (v[i].second == v[i].first) continue;       broj++;       cout << v[i].second <<     << v[i].first << endl;     }     return 0;   }   