Thursday, March 17, 2011

686 - Goldbach's Conjecture (II)


#include<iostream>
#include<stdlib.h>
#define M 32800
using namespace std;
int genprime();
bool prime[M];
int main()
{
    register int n,i,np,k;
    //freopen("in.txt","r",stdin);
    genprime();
    while(scanf("%d",&n)&&n)
    {
        np=0;
        for(i=2;i<=n-i;i++)
            if(prime[i]&&prime[n-i])np++;
        printf("%d\n",np);
    }
    exit(0);
}

int genprime()
{
    unsigned long i,j;
    for(i=2;i<M;i++)
        prime[i]=true;
    for(i=2;i<M;i++)
    {
        if(prime[i])
            for(j=2*i;j<M;j+=i)
                prime[j]=false;
    }
    return 0;
}

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.