#include #include #include #include using namespace std; typedef long long LL; int IsPrime (LL n) { int i; if (n < 2){ return 0; } if (n==2){ return 1; } if (n % 2 == 0){ return 0; } double sqrtNum = sqrt((double)n); for (i = 3; i <= sqrtNum; i += 2){ if (n % i == 0 ){ return 0; } } return 1; } int main(int argc, char* argv[]) { LL N,i,j; cin>>N; map priMap; map::iterator mit; vector pri; LL I; for (i=1;i<=N;i++){ if (IsPrime(i)==1){ pri.push_back(i); priMap[i*i]=1; } } int ans=0; int n=pri.size(); for (i=0;i