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;
inline int read() {
  int x = 0, f = 1;
  char ch = getchar();
  while (!isdigit(ch)) {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (isdigit(ch)) {
    x = x * 10 + ch - '0';
    ch = getchar();
  }
  return x * f;
}
struct Vector {
  double x, y, z;
} xyz[300100];
Vector operator+(const Vector &a, const Vector &b) {
  return (Vector){a.x + b.x, a.y + b.y, a.z + b.z};
}
Vector operator-(const Vector &a, const Vector &b) {
  return (Vector){a.x - b.x, a.y - b.y, a.z - b.z};
}
Vector operator*(const Vector &a, const double &b) {
  return (Vector){a.x * b, a.y * b, a.z * b};
}
Vector operator/(const Vector &a, const double &b) {
  return (Vector){a.x / b, a.y / b, a.z / b};
}
Vector operator^(const Vector &a, const Vector &b) {
  return (Vector){a.y * b.z - a.z * b.y, a.z * b.x - a.x * b.z,
                  a.x * b.y - a.y * b.x};
}
double operator&(const Vector &a, const Vector &b) {
  return a.x * b.x + a.y * b.y + a.z * b.z;
}
inline double len(Vector a) { return sqrt(a & a); }
inline double getV(Vector a, Vector b, Vector c) { return a & (b ^ c); }
inline double getA(Vector a, Vector b, Vector c) {
  Vector x = a ^ c, y = a ^ b;
  return acos(x & y / len(x) / len(y));
}
long long ans;
int main() {
  int n = read();
  for (int i = 2; i <= (n / 2); i++)
    for (int j = 2; i * j <= n; j++) ans += 4 * j;
  printf("%I64d\n", ans);
}
