#include #define el "\n" #define input(v) for (auto& it : v) cin >> it; #define int long long using namespace std; int intpow(int a, int b) { int ans = 1; while(b){ if(b & 1) ans *= a; a *= a; b /= 2; } return ans; } void solve() { int n; cin >> n; vector CS(1000001); for(int i = 1; i <= 1000000; i++) CS[i] = CS[i-1] + intpow(i,3); vector> ans; for(int i = 0; i <= 100000; i++) { auto it = lower_bound(CS.begin(), CS.end(), CS[i] + n); if(it != CS.end() && *it - CS[i] == n) { int id = it - CS.begin(); ans.push_back({i+1,id}); } } cout << ans.size() << el; for(auto &p : ans) cout << p.first << " " << p.second << el; } int32_t main() { int Tc = 1; // cin >> Tc; while(Tc--) solve(); return 0; }