#include using namespace std; #define ll long long #define int long long //Era(n)を呼んだ後、isprime[i]=iが素数かどうか となっている。 vector < bool > isprime; //返り値は素数のリスト。 vector < ll > Era(int n) { isprime.resize(n, true); vector < ll > res; isprime[0] = false; isprime[1] = false; for(ll i = 2; i < n; ++i) isprime[i] = true; for(ll i = 2; i < n; ++i) { if(isprime[i]) { res.push_back(i); for(ll j = i * 2; j < n; j += i) isprime[j] = false; } } return res; } signed main(){ int N; cin>>N; Era(200000); vector A; for(int i = 1; i < 200000; i++){ if(isprime[i]){ for(int j = i*i; j <= N; j*=i){ A.push_back(j); } } } sort(A.begin(),A.end()); int ans = 0; for(int i:A){ if(i <= N){ ans+=i; } } cout << ans << "\n"; }