#include using namespace std; using ll = long long; templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b A){ ll L = A.size(); FOR(i, 0, L){ if(i) cout << ' '; cout << A[i]; } cout << endl; } const int N_MAX = 1e6 + 10; bool is_prime[N_MAX]; // エラトステネスのふるい void Eratosthenes(){ FOR(i, 0, N_MAX){ is_prime[i] = true; } is_prime[0] = false; is_prime[1] = false; for(ll i=2; i*i<=N_MAX; i++){ if(is_prime[i]){ int p = i; int step_p = p; // それの倍数を消していく while(p < N_MAX){ p += step_p; if(p> N >> P; Eratosthenes(); // lonely if(is_prime[P] && P>N/2){ p(1); return 0; } ll count = 0; FOR(i, N/2 + 1, N+1){ if(is_prime[i]) count++; } // 1 count++; ll ans = N - count; p(ans); return 0; }