#include using namespace std; using lint = long long int; using pint = pair; using plint = pair; #define ALL(x) (x).begin(), (x).end() #define SZ(x) ((lint)(x).size()) #define POW2(n) (1LL << (n)) #define FOR(i, begin, end) for (int i = (begin), i##_end_ = (end); i < i##_end_; i++) #define IFOR(i, begin, end) for (int i = (end)-1, i##_begin_ = (begin); i >= i##_begin_; i--) #define REP(i, n) FOR(i, 0, n) #define IREP(i, n) IFOR(i, 0, n) #ifdef LOCAL #define eprintf(...) fprintf(stderr, __VA_ARGS__) #else #define eprintf(...) 42 #endif int main() { lint n; cin >> n; lint ans=1, tmp=1,prex=1; lint m = n; lint i = 2; map c; while(m>=i*i){ if(n%i==0){ if(c.count(i)){ c[i] = c.at(i)+1; }else{ c[i] = 1; } n /= i; }else{ i++; } } i = 0; while (m >= i * i) { if (c.count(i)) { //cout << c.at(i) << "\n"; tmp = (pow(i, c.at(i)+1) - 1)/(i-1); ans *= tmp; } i++; } if(n!=1)ans *= (n+1); cout << ans << "\n"; return 0; }