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;
long long bsearch(long long left, long long right, long long val) {
  long long ret = 0, mid, maxv = right;
  while (left <= right) {
    mid = left + (right - left) / 2;
    if (mid * val <= maxv) {
      ret = mid;
      left = mid + 1;
    } else {
      right = mid - 1;
    }
  }
  return ret;
}
int main() {
  long long n, ans = 0;
  scanf("%lld", &n);
  for (long long i = 2; i <= n / 2; i++) {
    long long temp = 0;
    for (long long mul = 1; i * mul <= n / 2; mul++) {
      long long up = n / (i * mul);
      temp += (2 + up) * (up - 1) * 2;
      temp += (up - 1) * i * mul * 4;
      long long L = bsearch(mul, n / i, i * mul);
      if (L >= 1) {
        temp -= (L - 1) * (L + 2) * i * 2LL + L * i * mul * 4;
      }
    }
    ans = max(ans, temp);
  }
  printf("%lld\n", ans);
  return 0;
}
