#include <bits/stdc++.h>
using namespace std;
using ll = int64_t;
/*
  for(int i=0;i<n;i++){
  }
*/

int main(){
  int n;
  cin>>n;
  ll ans=0;
  for(int i=1;i*i<=n;i++){
    /*
    int ok=-1;
    int ng=n+1;
    while(ng-ok>1){
      int mid=(ok+ng)/2;
      if(mid*i>n) ng=mid;
      else ok=mid;
    }
    */
    ans+=n/i/i;
    for(int j=i+1;i*j<=n;j++){
      ans+=n/i/j *2;
    }
  }
  
  cout<<ans<<endl;
}

#pragma region shig_templates

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int, int> pairI2;
typedef pair<LL, LL> pairLL2;
typedef vector<int> VI;
typedef vector<LL> VLL;
typedef vector<VI> VVI;
typedef vector<VVI> VVVI;
typedef vector<string> VS;
#define shig_for(i, a, b) for(int i = (a); i < (b); ++i)
#define shig_rep(i, n) shig_for(i, 0, n)
#define shig_forB(bit,a,b) for(int bit = (a); bit < (1<<(b)); ++bit)
#define shig_repB(bit,n) shig_forB(bit,0,n)
#define CINI(a) int (a); cin >> (a)
#define CINLL(a) LL (a); cin >> (a)
#define CINI2(a, b) int a, b; cin >> (a) >> (b)
#define CINLL2(a, b) LL a, b; cin >> (a) >> (b)
#define tmp int temp = 0
#define str string s

template<class T> void COUT(T&& t){ cout << t << endl; }
template<class T,class... Ts>
void COUT(T&& t,Ts&&... ts){ cout << t << " "; COUT(ts...); }
void CIN() {}
template<class T,class... Ts> void CIN(T&& t,Ts&&... ts){ cin >> t; CIN(ts...); }

#pragma endregion

LL check(LL x){
    LL cnt = 0;

    for(LL i = 1; i*i <= x; i++){
        if(i*i == x){
            cnt+=1;
            continue;
        }
        if(x % i == 0)cnt+=2;
    }

    return cnt;
}


int main(){
    LL ans = 0;
    LL K; CIN(K);

    for(LL i = 1; i <= K; i++){
        LL n = check(i);
        LL yoko = K / i;
        ans += n*yoko;
    }

    COUT(ans);
    //for(string& s : S) cin >> s;
    //cout << "Atcoder " << N << endl;
    //cout << fixed << setprecision(10) << ans << endl;

    return 0;
}