#include #include #include #include int main() { using namespace std; ios::sync_with_stdio(false); cin.tie(nullptr); using u128 = __uint128_t; constexpr u128 M = 1000100; vector acc(M, 0); for (u128 i = 1; i < M; i++) { acc[i] = acc[i - 1] + i * i * i; } long long n; cin >> n; vector> ans; for (int l = 0; l < static_cast(M); l++) { int r = lower_bound(acc.begin(), acc.end(), acc[l] + n) - acc.begin(); if (acc[l] + n == acc[r]) { ans.emplace_back(l + 1, r); } } cout << ans.size() << "\n"; for (auto [l, r] : ans) { cout << l << " " << r << "\n"; } }