#include <bits/stdc++.h>
using namespace std;
using ll = long long;

int main()
{
    int x;
    cin >> x;
    cout << max(x, 0) << endl;
    return 0;
}
#include <bits/stdc++.h>
// #include <atcoder/all>
using namespace std;
// using namespace atcoder;
 
#define rp(i, k, n) for (int i = k; i < n; i++)
using ll = long long;
using ld = long double;
 
template<class T>inline bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T>inline bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0; }
const ll INF = 1ll << 60;
const ll MOD = 101;
// const ll MOD = 1e9 + 7ll;
// const ll MOD = 998244353;
const double PI=3.14159265358979323846;

int main() {
    ll k; cin >> k;
    ll ans = 0ll;
    ll a = 1ll;
    while(1) {
        ll b = a;
        while(1) {
            ll c = b;
            while(1) {
                if(a*b*c <= k) {
                    // printf("(%lld, %lld, %lld)", a, b, c);
                    if(a == b and a == c and b == c) {
                        ans++;
                        // cout << " 1" << endl;
                    } else if(a == b or b == c) {
                        ans += 3ll;
                        // cout << " 3" << endl;
                    } else {
                        ans += 6ll;
                        // cout << " 6" << endl;
                    }
                    c++;
                } else {
                    if(a == b == c) {
                        cout << ans << endl;
                        return 0;
                    } else {break;}
                }
            }
            if(b == c) break;
            b++;
        }
        if(a == b) {
            cout << ans << endl;
            return 0;
        }
        a++;
    }
}