#include #include using namespace std; using namespace atcoder; using mint = modint998244353; //using mint = modint1000000007; typedef long long ll; typedef pair P; typedef tuple T; templatebool chmax(T& a, const T& b) { if (a < b) { a = b;return true; } else { return false; } } templatebool chmin(T& a, const T& b) { if (a > b) { a = b;return true; } else { return false; } } template void dbg(Args&&... args) { ((cout << args << ' '), ...);cout << '\n'; } const int di[] = { -1,0,1,0 }; const int dj[] = { 0,-1,0,1 }; const long long INF = 6000000000000000000; const int inf = 1001001001; vector Eratosthenes(int N) { vector isprime(N + 1, true); isprime[0] = isprime[1] = false; for (int p = 2; p <= N; ++p) { if (!isprime[p]) continue; for (int q = p * 2; q <= N; q += p) { isprime[q] = false; } } return isprime; } int main(void) { ll n; cin >> n; ll ans = 0; vector era = Eratosthenes(100000); for (ll i = 0; i <= 100000; i++) { if (era[i]) { ll cnt = i * i; while (cnt <= n) { ans += cnt; cnt *= i; } } } cout << ans << "\n"; }