#include int is_prime(long long n) { if (n < 2) return 0; if (n == 2) return 1; if (n % 2 == 0) return 0; for (long long i = 3; i * i <= n; i += 2) { if (n % i == 0) return 0; } return 1; } int main(void) { long long N; scanf("%lld", &N); long long sum = 0; for (long long p = 2; p * p <= N; p++) { if (is_prime(p)) { long long x = p * p; // p^2 からスタート while (x <= N) { sum += x; if (x > N / p) break; // オーバーフロー防止 x *= p; } } } printf("%lld\n", sum); return 0; }