#include long long int f(long long int n) { long long int res = n * (n + 1) / 2; res = res * res; return res; } long long int ans[1000006][2], c; int main() { long long int n, l, r; scanf("%lld", &n); c = 0; for (l = 0, r = 1; r * r * r <= n; r++) { while (f(r) - f(l) > n) l++; if (f(r) - f(l) == n) { ans[c][0] = l + 1; ans[c][1] = r; c++; } } printf("%lld\n", c); long long int i; for (i = 0; i < c; i++) printf("%lld %lld\n", ans[i][0], ans[i][1]); return 0; }