#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int n; long long int sum(long long int a, long long int b){ long long int k = a + b - 1LL; return (a + k)*b / 2LL; } long long int __gcd(long long int a, long long int b){ if (a > b){ swap(a, b); } while (a){ b %= a; swap(a, b); } return b; } int main(){ scanf("%d", &n); long long int s = sum(1, n); long long int ss = sum(1 + 1LL, n); ss = __gcd(s, ss); long long int ind = 1LL; long long int ans = 0; set S; while (ind*ind <= ss){ if (ss%ind == 0LL){ if (S.count(ind)){ } else{ S.insert(ind); ans += ind; } long long int ne = ss / ind; if (S.count(ne)){ } else{ S.insert(ne); ans += ne; } } ind++; } if (S.count(ss)){ } else{ ans += ss; } printf("%lld\n", ans); return 0; }