#include using namespace std; using ll = long long; int main () { ll N; cin >> N; std::vector> ans; N *= 8; ll b = 0; while (b * b * b < N) b ++; for (ll a = 1; a * a * a * a < N; a ++) { if (N % a) continue; ll n = N / a; if ((a + 1) * (a * a + a * a + 2 * a) > n) continue; ll ok = a, ng = b; while (abs(ok - ng) > 1) { ll mu = (ok + ng) / 2; ll x = (mu + 1) * (a * a + mu * mu + 2 * mu); if (x > n) ng = mu; else ok = mu; } ll x = (ok + 1) * (a * a + ok * ok + 2 * ok); if (x != n) continue; if ((a + ok) & 1) continue; ll R = (a + ok) / 2, L = (ok - a) / 2 + 1; ans.emplace_back(L, R); } cout << ans.size() << endl; for (auto& [l, r] : ans) cout << l << " "<< r << endl; }