纠结了很久,才想到用筛选法找素数的方法做出,不容易啊!
对于别人是水题啊……T_T……
贴个代码:
#include <iostream>
using namespace std;
int main()
{
int t,n,hash[32778];
int i,j,count;
cin>>t;
while(t--)
{
count=0;
memset(hash,0,sizeof(hash));
cin>>n;
for(i=2;i<=n;i++)
{
if(n%i==0){
for(j=i;j<n;j+=i)
hash[j]=1;
}
}
for(i=2;i<=n;i++)
if(hash[i]==0)
count++;
cout<<count<<endl;
}
return 0;
}