还是使用筛选法。。。不然TLE
#include<stdio.h>
#include<memory.h>
int x[32768];
int main()
{
int i,t,j,n,sum;
while(scanf("%d",&t)!=EOF)
{
while(t--){
scanf("%d",&n);
sum=0;
memset(x,0,sizeof(x));
for(i=2;i<n;i++){ // 筛选法
if(n%i==0&&x[i]==0){
for(j=i;j<n;j+=i){
x[j]=1;
}
}
}
for(i=1;i<n;i++){
if(x[i]==0) sum++;
}
printf("%d\n",sum);
}
}
system("pause");
return 0;
}