#include<bits/stdc++.h>
using ll = int_fast64_t;
using P = std::pair<ll,ll>;
using PP = std::pair<ll,P>;

#define REP(i,b,e) for(ll i=b; i<e; i++)
#define PRINT(vec) {printf("[ ");for(auto &i:vec)printf("%ld ",i);puts("]");}
#define fi first
#define se second

const int MOD = 1e9+7;
int dx[] = {0, 1, 0, -1, 1, 1, -1, -1}, dy[] = {1, 0, -1, 0, 1, -1, -1, 1};

int main(){
	ll k;
	scanf("%ld", &k);

	ll ans = 0;
	REP(i, 1, k+1){
		for(ll j=1; j*i<=k; j++){
			ans += k / (i*j);
		}
	}
	printf("%ld\n", ans);	
	return 0;
}


#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n;
    cin>>n;
    vector<tuple<int,int,int>> v;
    for(int i=0;i<n;i++)
    {
        int p,q,r;
        cin>>p>>q>>r;
        v.push_back({q,r,p});
    }
    int c=0;
    sort(v.begin(),v.end());
    for(int i=0;i<n;i++)
    {
        for(int j=i+1;j<n;j++)
        {
            if(get<1>(v[i])>get<0>(v[j]))
            {
                c++;
                //                cout<<get<1>(v[i])<<" "<<get<0>(v[j])<<'\n';
                continue;
            }
            if(get<1>(v[i])==get<0>(v[j])&&(get<2>(v[i])==1||get<2>(v[i])==3)&&(get<2>(v[j])==2||get<2>(v[j])==1))
            {
                //cout<<get<1>(v[i])<<" "<<get<0>(v[j])<<'\n';
                c++;
            }
        }
    }
    cout<<c<<'\n';
}