题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3792
C语言源码:
#include<stdio.h>
#define maxsize 100000
int T[maxsize];
int S[maxsize];
void pri()
{
long long i,j,num;
for(i=2;i<maxsize;i++)
{
if(T[i]==0)
{
for(j=i;i*j<maxsize;j++)
T[i*j]=1;
}
}
T[0]=1;
T[1]=1;
num=0;
for(i=2;i<maxsize;i++)
{
if(T[i]==0&&T[i-2]==0)
num++;
S[i]=num;
}
}
int main()
{
int i,n;
for(i=0;i<maxsize;i++)
{
T[i]=0;
S[i]=0;
}
pri();
while(1)
{
scanf("%d",&n);
if(n<0)
break;
printf("%d\n",S[n]);
}
}