#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i, n) for(int i = 0; i < (n); i++) #define per(i, n) for(int i = (n) - 1; i >= 0; i--) using ll = long long; #define vi vector #define vvi vector #define vl vector #define pii pair #define pll pair #define all(a) (a).begin(), (a).end() #define rall(a) (a).rbegin(), (a).rend() constexpr int mod = 1000000007; using namespace std; template bool chmax(T &a, const U &b){ return a < b ? (a = b, 1) : 0; } template bool chmin(T &a, const U &b){ return a > b ? (a = b, 1) : 0; } int main(){ int a; cin >> a; vvi cnt(333, vi(4445)); for(ll j = 1; j <= 4444; j++){ const int v = (j*j*j) % 333; cnt[v][j]++; } rep(i, 333) rep(j, 4444) cnt[i][j+1] += cnt[i][j]; ll ans = 0; const ll mx = 4444LL*4444*4444*4444; for(ll i = 1; i <= 4444; i++){ const ll iv = i*i*i*i; const int iv3 = i*i*i % 333; for(ll j = i; iv+j*j*j*j <= mx; j++){ const ll jv = iv+j*j*j*j; const int jv3 = (iv3+j*j*j) % 333; const int v = (333 - jv3 + a) % 333; const int l = sqrt(sqrt(mx - jv)); if(l < j) continue; const ll num = cnt[v][l] - cnt[v][j]; if(i == j) ans += num * 3; else ans += num * 6; if(cnt[v][j] - cnt[v][j-1] == 1){ if(i == j) ans++; else ans += 3; } } } cout << ans << "\n"; }