#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define fix(n) cout<; const ll MOD = 1000000007; // 10^9 + 7 const int dx[8] = {1, 0, -1, 0, 1, -1, -1, 1}; const int dy[8] = {0, 1, 0, -1, 1, 1, -1, -1}; vector

factor(ll n) { vector

ret; ll q = n; for (ll d = 2; d * d <= n; d++) { if (q % d > 0) continue; ll cnt = 0; while (q % d == 0) { cnt++; q /= d; } ret.push_back(make_pair(d, cnt)); } if (q > 1) ret.push_back(make_pair(q, 1)); return ret; } ll mypow(ll x, ll n) { ll res = 1; while (n > 0) { if (n & 1) res = res * x; x = x * x; n >>= 1; } return res; } void solve() { ll N; cin >> N; ll g = N % 2 == 0 ? N / 2 : N; vector

v = factor(g); ll ans = 1; for (P vi : v) { ll p = vi.first, k = vi.second; // debug2(p, k); if (k == 1) ans *= p+1; else ans *= (mypow(p,k+1)-1)/(p-1); } outl(ans); } signed main() { cin.tie(0); ios::sync_with_stdio(false); srand((unsigned)time(NULL)); fix(12); solve(); }