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

#ifdef DEBUG
    #include "debug.h"
    #define DEB
    #define dump(...)                                                              \
        DUMPOUT << "  " << string(#__VA_ARGS__) << ": "                            \
                << "[" << to_string(__LINE__) << ":" << __FUNCTION__ << "]"        \
                << endl                                                            \
                << "    ",                                                         \
            dump_func(__VA_ARGS__)
#else
    #define DEB if (false)
    #define dump(...)
#endif


// http://beet-aizu.hatenablog.com/entry/2018/04/08/145516
template<typename T>
vector<T> make_v(size_t a){return vector<T>(a);}

template<typename T,typename... Ts>
auto make_v(size_t a,Ts... ts){
  return vector<decltype(make_v<T>(ts...))>(a,make_v<T>(ts...));
}

template<typename T,typename V>
typename enable_if<is_class<T>::value==0>::type
fill_v(T &t,const V &v){t=v;}

template<typename T,typename V>
typename enable_if<is_class<T>::value!=0>::type
fill_v(T &t,const V &v){
  for(auto &e:t) fill_v(e,v);
}

//////////////////

#define int long long
 
#define rep(i,n) for(int i=0, i##_len=(n); i<i##_len; ++i)

#define YES puts("YES")
#define Yes puts("Yes")
#define NO  puts("NO")
#define No  puts("No")
#define ALL(v) (v).begin(), (v).end()
int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
template<class T> bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T> bool chmin(T &a, const T &b) { if (a>b) { a=b; return 1; } return 0; }

//*
#define mod 1000000007 /*/
#define mod 998244353 //*/

typedef pair<int, int> P;
#define INF (1LL<<60)

vector<pair<int, int> > prime_factorize(int n) {
    vector<pair<int, int> > res;
    for (int p = 2; p * p <= n; ++p) {
        if (n % p != 0) continue;
        int num = 0;
        while (n % p == 0) { ++num; n /= p; }
        res.push_back(make_pair(p, num));
    }
    if (n != 1) res.push_back(make_pair(n, 1));
    return res;
}

int tau(int N){
    auto v = prime_factorize(N);
    int r = 1;
    for(auto p : v){
        r *= p.second+1;
    }
    return r;
}

void solve(){
    
    vector<int> t = {0,60838190672,257212470774,596981215450,1084296609104,1722125036282,2512661322551,3457770622390,4558987534475,5817729717828,7235062807366,8812039622862,10549659220862,12448845177256,14510332007222,16734924755096,19123138141378,21675833225770,24393634293809,27276821356759,30326413365285,33542358268005,36925459066686,40476248899052,44194833598353,48081994935671,52138123487538,56363615930452,60758384185743,65323182791149,70058785460280,74964555109988,80041527790312,85290161753688,90709780843282,96301520878991,102065855149715,108002269398516,114111807921375,120394329084663,126850549017804,133479467089246,140282617787827,147259491582477,154411235469265,161737467121483,169238102781982,176913242475822,184764302482181,192790925674795,200992441246692,209370037656611,217923890158764,226653316365413,235560022983960,244642548171917,253902107151677,263338334303632,272951354222680,282742772106696,292711324081941,302856699362737,313180253381239,323682486495499,334361760892115,345219904513529,356256480873339,367470747430202,378864539458650,390437889429971,402188826344049,414118956306590,426229374669116,438519040875971,450987322450746,463635895079489,476465015795706,489473701762655,502662434241804,516031076204871,529581632274134,543311223215741,557220889209512,571311613610574,585584064718129,600036645526326,614670553358276,629486032479553,644482906053419,659661281999214,675021515919670,690561394962114,706285619557381,722190402701363,738276491989247,754546104527913,770997444637057,787630213195247,804447590347769,821446543739323,838627288460105};

    /*
    int ans = 0;
    for(int N=1; N<=10000000; N++){
        ans += tau(N) * N;
        if(N%100000==0){ cout << ans << ",";}
    }
     */
    int N;
    cin >> N;
    int ans = t[N/100000];
    for(int k = N/100000*100000 + 1; k<=N; k++){
        ans += tau(k) * k;
    }
    cout << ans << endl;
}



signed main(){
    cout << fixed << setprecision(18);
    cerr << fixed << setprecision(18);
    solve();
}


Measured memory_bytes: 3616