标签:
#include <stdio.h>
int prime[1000001],k=0;
bool vis[1000001];
void init(){
for(int i=2;i<=1000;i++)
if(vis[i]==false)
for(int j=i+i;j<=1000000;j+=i)
vis[j]=true;
for(int i=2;i<1000000;i++)
if(vis[i]==false)
prime[k++]=i;
}
int main(){
init();
int t,n;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
int ans=0;
for(int i=1;prime[i]<=n;i++)
if(prime[i]-prime[i-1]==2||prime[i]-prime[i-1]==1)//实在纠结用if(prime[i]-prime[i-1]<=2)wa了,发现是多了一个两者相等的情况,可是两个下标不同的素数,怎么会相等呢?表示纠结
ans++;
printf("%d\n",ans);
}
return 0;
}
标签:
原文地址:http://www.cnblogs.com/huaixiaohai2015/p/5259377.html