#include<stdio.h>
#include<math.h>
#include<algorithm>
#include<string.h>
using namespace std;
#define maxsize 1000000
int ani=1;
bool a[maxsize];
void init()\\素数筛选
{
for(int i=2;i<1000000;i++)
{
for(int j=2;i*j<1000000;j++)
{
a[i*j]=true;
}
}
}
int main()
{
memset(a,false,sizeof(a));
init();
a[1]=true;
a[0]=true;
int x,y;
int b[100000];
int l=0;
for(int i=2;i<100000;i++)\\只留下素数
if(!a[i])
b[l++]=i;
int c[100000];
c[0]=0;
memset(c,0,sizeof(c));;
for(int i=1;i<l;i++)\\预处理
{
if(b[i]-b[i-1]==2)
c[b[i]]=c[b[i-1]]+1;
else
c[b[i]]=c[b[i-1]];
}
while(scanf("%d",&x)&&x>=0)
{
while(c[x]==0&&x!=0)
x--;
printf("%d\n",c[x]);
}
}
素数 hdu 3792 Twin Prime Conjecture
最新推荐文章于 2020-02-26 13:29:19 发布