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;
const int INF = 1e9 + 10;
vector<int> prime;
vector<int> check(100005);
void findPrime() {
  prime.push_back(2);
  for (int t = 3; t <= (100000); t += 2) {
    if (check[t] == 0) {
      prime.push_back(t);
      for (int i = t * 2; i <= (100000); i += t) check[i] = 1;
    } else
      continue;
  }
}
int main() {
  long long n, a[50000];
  long long s = 0;
  scanf("%lld", &n);
  findPrime();
  vector<long long> v;
  long long t = n;
  vector<long long> store;
  for (int i = 0; i < prime.size(); i++) {
    while (t % prime[i] == 0) {
      t /= prime[i];
      a[i]++;
    }
    if (a[i] > 0) {
      for (int j = prime[i]; j <= n; j += prime[i]) v.push_back((long long)j);
    }
    if (t == 1) break;
  }
  sort(v.begin(), v.end());
  v.erase(unique(v.begin(), v.end()), v.end());
  reverse(v.begin(), v.end());
  for (int i = 0; i < v.size(); i++) {
    for (int j = i + 1; j < v.size(); j++) {
      if (v[i] % v[j] != 0) continue;
      long long k = v[i] / v[j];
      s += k * 4;
    }
  }
  printf("%lld", s);
  return 0;
}
