#include <bits/stdc++.h>
using namespace std;
//#include <atcoder/all>
//using namespace atcoder;
#define rep(i,n) for (int i = 0; i < (n); ++i)
#define rep1(i,n) for (int i = 1; i <= (n); ++i)
#define bit(n,k) ((n>>k)&1) //nのk　bit目
#define vec(T) vector<T>
#define vvec(T) vector<vector<T>>
using ll = long long;
using P = pair<int,int>;
using Pll = pair<ll,ll>;


template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; }
const ll llINF = 1LL << 60;
const int iINF = 1e9;

//------------------------------------------------


struct Solver{


    void solve(){
        ll K;
        cin >>K;

        ll ans=0;
        rep1(a,K){
            rep1(d,K){
                if(a*d>K) break;
                for(ll b=1; b*b<=d; b++){
                    if(d%b!=0) continue;
                    if(d/b==b) ans++;
                    else ans+=2;
                }
            }
        }
        cout << ans << endl;

        /*
        ll ans = 0;
        rep1(kk,K){
            //cout << kk << endl;
            rep1(a,kk){
                if(kk%a!=0) continue;
                ll l=kk/a;
                for(ll b=1; b*b<=l; b++){
                    if(l%b!=0) continue;
                    if(l/b==b) ans++;
                    else ans+=2;
                    //cout << a << ","<<b <<"," << l/b<<" : " << ans << endl;
                }
            }
        }
        cout << ans << endl;
        */
    }
};


int main(){
    int testcasenum=1;
    //cin >> testcasenum;
    rep1(ti,testcasenum){
        Solver solver;
        solver.solve();
    }
    return 0;
}

#include <bits/stdc++.h> 
#include <chrono>
using namespace std;
 
template<class T> inline string toString(T x) {ostringstream sout;sout<<x;return sout.str();}
 
 
//typedef
//------------------------------------------
typedef pair<int, int> PII;
typedef long long LL;
typedef pair<LL, LL> PLL;
 
//container util
//------------------------------------------
#define PB emplace_back
#define MP make_pair 
#define SZ(a) int((a).size())
//repetition
//------------------------------------------
#define FOR(i,a,b) for(LL i=(a);i<(b);++i)
#define REP(i,n)  FOR(i,0,n)
#define SORT(c) sort((c).begin(),(c).end())
#define ALL(a)  (a).begin(),(a).end()
#define CLR(a) memset((a), 0 ,sizeof(a))
//constant
//--------------------------------------------
//clear memory


struct edge{LL to,cost,k;};
typedef pair<LL,LL> P;//firstは最短距離,secondは頂点番号

const int MAX_V=1e5+3;
const LL INF=LONG_MAX;

int main(){
    int K;
    cin>>K;
    LL res=0;
    for(LL A=1;A<=K;A++){
        for(LL B=1;A*B<=K;B++){
            for(LL C=1;A*B*C<=K;C++){
                if(A*B*C<=K)res++;
            }
        }
    }
    cout<<res<<endl;
    return 0;
}
