tjut 3792

来源:互联网 发布:音乐播放 知乎 编辑:程序博客网 时间:2024/05/22 00:56
#include<stdio.h>#include<string.h>#define MAX 100000int c[100000];int  lowbit(int x){    return x&(-x);}void add(int x,int num){    while(x<=MAX)    {        c[x]+=num;        x+=lowbit(x);    }}int sum(int x){    int ans=0;    while(x>0)    {        ans+=c[x];        x-=lowbit(x);    }    return ans;}int flag[100000],p[10000];int main(){    int i,j,k,tot=0;    memset(flag,0,sizeof(flag));    for(i=2;i<=100000;i++)    {        if(!flag[i])        {            p[++tot]=i;            for(j=2*i;j<=100000;j+=i)            {                flag[j]=1;            }        }    }    for(i=2;i<=tot;i++)    {        if(p[i]-p[i-1]==2)        {            add(p[i],1);        }    }    int n;    while(scanf("%d",&n),n>0)    {        if(n==0) printf("0\n");        else         printf("%d\n",sum(n));    }    return 0;}

0 0