码迷,mamicode.com
首页 > 其他好文 > 详细

nyist 26

时间:2016-03-09 20:49:27      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:


#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;
}

 

nyist 26

标签:

原文地址:http://www.cnblogs.com/huaixiaohai2015/p/5259377.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!