读书人

POJ 哥巴猜测

发布时间: 2013-01-20 10:22:40 作者: rapoo

POJ 哥巴猜想

/*POJ 2262  哥巴猜想:每个偶素(n >= 4)都可表示成两个素数之和 思路: 打表  */#include<iostream>#include<cstdio>#define manx 1000009using namespace std;bool s[manx];void prime(){    for(int i=0;i<manx;i++)        s[i]=0;    for(int i=2;i*i<=manx;i++){        if(!s[i]){            for(int j=2;j*i<manx;j++)                s[i*j]=1;        }    }}int main(){    prime();    int n;    while(cin>>n,n){        if(n%2){            cout<<"Goldbach's conjecture is wrong." <<endl;            continue;        }        int flag=0;        for(int i=3;i+i<=n;i++){            if(!s[i] && !s[n-i]){                cout<<n<<" = "<<i<<" + "<<n-i<<endl;                flag=1; break;            }        }                if(!flag) cout<<"Goldbach's conjecture is wrong." <<endl;    }}


/*POJ 2909 哥巴猜想:每个偶素(n >= 4)都可表示成两个素数之和 思路: 打表  */#include<iostream>#include<cstdio>#define manx 1000009using namespace std;bool s[manx];void prime(){    for(int i=0;i<manx;i++)        s[i]=0;    for(int i=2;i*i<=manx;i++){        if(!s[i]){            for(int j=2;j*i<manx;j++)                s[i*j]=1;        }    }}int main(){    prime();    int n;    while(cin>>n,n){        int flag=0;        for(int i=2;i+i<=n;i++){            if(!s[i] && !s[n-i]){                flag++;            }        }                cout<<flag<<endl;     }}



读书人网 >其他相关

热点推荐