素数筛。。。
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
#define maxn 1100000
int isprime[maxn],cnt;
void init()
{
isprime[1]=0;
for(int i=2;i<=maxn;i++)
{
if(!isprime[i])
{
cnt++;
for(int j=i;j<=maxn;j+=i)
{
isprime[j]=cnt;
}
}
}
}
int main()
{
memset(isprime,false,sizeof(isprime));
init();
int n;
while(~scanf("%d",&n))
{
printf("%d\n",isprime[n]);
}
return 0;
}