LA4382&&hdu2973
威尔逊定理
若p为素数,则 (p−1)!=−1(modp)
#include<cstdio>
#include<cstring>
using namespace std;
bool vis[3002000];
int ans[3000500];
void init(){
for(int i=2;i<=3000100;i++){
if(!vis[i]){
for(int j=i+i;j<=3000100;j+=i)
vis[j]=1;
}
}
for(int i=2;i<=1000100;i++){
ans[i]=ans[i-1]+(vis[3*i+7]?0:1);
}
}
int main(){
init();
int T,x;
scanf("%d",&T);
while(T--){
scanf("%d",&x);
printf("%d\n",ans[x]);
}
}