twins prime:素数b-素数a==2,
求0-n有多少twins prime
打表
#include"stdio.h"
#include"string.h"
#define N 100001
int isPrime[N];
int A[N/10],cnt;
int B[N];
void prime()
{
int i,j;
cnt=0;
memset(isPrime,0,sizeof(isPrime));
isPrime[0]=isPrime[1]=1;
for(i=2;i<N;i++)
{
if(isPrime[i]==0)
{
A[cnt++]=i;
for(j=i+i;j<N;j+=i)
isPrime[j]=1;
}
}
//printf("%d\n",cnt);
}
int main()
{
int n;
int i,j;
int ans=0;
prime();
j=A[0];
B[0]=0;
for(i=1;i<cnt;i++)
{
if(A[i]-j==2)ans++;
j=A[i];
B[A[i]]=ans;
}
j=0;
for(i=0;i<N;i++)
{
if(B[i]>j)j=B[i];
B[i]=j;
}
while(scanf("%d",&n)!=-1&&n>=0)
printf("%d\n",B[n]);
return 0;
}