28237
 13190
 39914
 81367
 8554
 61106
 67448
 39004
 22308
 16054
 71468
 60501
 100
 300
 59632
 90783
 5611
 1000
 69475
 69753
 10
 5
 582
 8
 36961
 5071
 20
 53213
 92775
 28738
 100000
 92280
 37944
 9
 2627
 7
 3

1028306548 224346172 2054738392 8539207488 94344524 4816051228 5867563092 1962150044 641839188 332342852 6587875268 4721174212 12600 115440 4586497300 10630118936 40580456 1286328 6225539588 6275533596 92 8 434692 52 1762017168 33141852 440 3652070664 11101694484 1065137992 12898363344 10983871880 1856988304 64 8885348 28 0
#include <bits/stdc++.h>
using namespace std;
template <typename Arg1>
void __f(const char* name, Arg1&& arg1) {
  cout << name << " : " << arg1 << "\n";
}
template <typename Arg1, typename... Args>
void __f(const char* names, Arg1&& arg1, Args&&... args) {
  const char* comma = strchr(names + 1, ',');
  cout.write(names, comma - names) << " : " << arg1 << " | ";
  __f(comma + 1, args...);
}
void bolt() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
}
struct Edge {
  long long node;
  long long weight;
};
const long long MAX = 1e5 + 5;
vector<vector<Edge>> g(MAX);
vector<bool> vis(MAX, false);
long long ans;
void dfs(long long node) {
  vis[node] = true;
  for (Edge e : g[node]) {
    ans += e.weight;
    if (!vis[e.node]) {
      dfs(e.node);
    }
  }
}
int32_t main() {
  bolt();
  long long n;
  cin >> n;
  for (long long i = 2; i <= n; i++) {
    for (long long j = 2 * i; j <= n; j += i) {
      Edge e1 = {j, j / i};
      g[i].push_back(e1);
      Edge e2 = {i, j / i};
      g[j].push_back(e2);
    }
  }
  ans = 0;
  for (long long i = 2; i <= n; i++) {
    if (!vis[i]) dfs(i);
  }
  cout << ans * 2;
  return 0;
}
