LightOJ 1259 Goldbach`s Conjecture

来源:互联网 发布:淘宝怎么实名认证激活 编辑:程序博客网 时间:2024/06/10 03:24

题意:

求1e7内的哥德巴赫猜想,找出某个数可以由几对素数相加得。

思路:

直接素数打表暴力枚举即可。

代码:

#define N 11234567int n,m,sum;bool mark[N];int pri[N/10],cnt;void SP(){    cnt=0;    memset(mark,true,sizeof(mark));    mark[0]=mark[1]=false;    for(int i=2;i<N;i++)    {        if(mark[i])            pri[cnt++]=i;        for (int j=0;(j<cnt)&&(i*pri[j]<N);j++)        {            mark[i*pri[j]]=false;            if (i%pri[j]==0)                break;        }    }}int main(){    int i,j,k,kk,t,x,y,z;    SP();    scanf("%d",&k);    kk=0;    while(k--)    {        scanf("%d",&n);        for(sum=0,i=0;i<cnt&&pri[i]*2<=n;i++)            if(mark[n-pri[i]])                    sum++;        printf("Case %d: %d\n",++kk,sum);    }    return 0;}









0 0
原创粉丝点击