原题地址
其实原理和筛法求素数一样,你找到那个 能筛掉它的素数 就对了
做了些数论的题发现。。自己的数学底子 有点薄 有时候上来就会凌乱。。囧
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <string>
#include <vector>
#include <queue>
#include <algorithm>
#define N 1000010
using namespace std;
int prime[N];
int main()
{
int s,i,n,j,k,num;
prime[1]=0;
num=0;
for(i=2;i<N;i++)
{
if(prime[i]==0)
{
num++;
for(j=i;j<N;j+=i)
prime[j]=num;
}
}
while(cin>>n)
{
cout<<prime[n]<<endl;
}
return 0;
}