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>
bool visited[100000 + 1];
int gcd(int p, int q) {
  if (q == 0) return p;
  return gcd(q, p % q);
}
int main() {
  int N;
  scanf("%d", &N);
  std::queue<int> q;
  q.push(N);
  visited[N] = true;
  while (!q.empty()) {
    int f = q.front();
    q.pop();
    for (unsigned long long i = 2; i * i <= f; i++) {
      if (f % i == 0) {
        if (!visited[i]) {
          q.push(i);
          visited[i] = true;
          for (int j = i; j < N; j += i) {
            if (!visited[j]) {
              q.push(j);
              visited[j] = true;
            }
          }
        }
        if (!visited[f / i]) {
          q.push(f / i);
          visited[f / i] = true;
          int ii = f / i;
          for (int j = ii; j < N; j += ii) {
            if (!visited[j]) {
              q.push(j);
              visited[j] = true;
            }
          }
        }
      }
    }
  }
  unsigned long long ans = 0;
  for (int i = N; i >= 2; i--) {
    if (visited[i]) {
      int _i = i;
      unsigned long long sum = 0;
      for (unsigned long long j = 2; j * j <= i; j++) {
        if (_i % j == 0) {
          sum += 1ULL * j;
          if (j * j != i) {
            sum += 1ULL * i / j;
          }
        }
      }
      ans += 1ULL * sum * 4;
    }
  }
  printf("%llu\n", ans);
  return 0;
}
