#include #define endl enjoy_codeforces using lint=long long; int main(){ std::cin.tie(nullptr);std::ios_base::sync_with_stdio(false); int n;std::cin>>n; if(n==1){ std::cout<<0<<'\n'; return 0; } std::vectorsieve(n+1); for(int p=2;p*p<=n;p++){ if(sieve.at(p))continue; for(int i=p*p;i<=n;i+=p){ sieve.at(i)=true; } } int ans=0; for(int r=2;r*r<=n;r++){ ans+=!sieve.at(r)&&!sieve.at(r*r-2); } std::cout<<2*ans-1<<'\n'; } /* * p か q のいずれかは 2 です。 * p が 2 であるものをカウントして 2 倍して、 * p = q = 2 の場合を引けばよいです。 */