首页 > 代码库 > 40.验证哥德巴赫猜想:一个大于2的偶数总可以分解成两个素数的和

40.验证哥德巴赫猜想:一个大于2的偶数总可以分解成两个素数的和

//1、输入一个偶数。判断是否为偶数//2、若是,求出小于其的所有素数//3、将它们求和//4、验证是否满足哥德巴赫猜想#include<iostream>#include<cmath>using namespace std;int Sushu(int);int main(){    int n,k,q;    int a[1000];    begin:    cout<<"please input an even number(偶数):"<<endl;    cin>>n;    for(int p=0;p<1000;p++)    {        a[p]=0;    }    if(n%2!=0)//判断是否为偶数    {        cout<<"wrong,please try again!";        goto begin;    }else    {        if(n==2)        {            cout<<"1"<<" "<<"1"<<endl;            cout<<"OMG,偶数"<<n<<"符合哥德巴赫猜想!!"<<endl;        }else        {            for(int i=3;i<n;i++)//把到n为止的素数全部存入数组            {                if(Sushu(i))                {                    a[i-1]=i;                }            }            for(int j=0;j<100;j++)            {                a[0]=1;                a[1]=2;                for(k=j+1;k<100;k++)                {                    q=a[j]+a[k];                    if(q==n)                    {                        cout<<a[j]<<" "<<a[k]<<endl;                        cout<<"OMG,偶数"<<n<<"符合哥德巴赫猜想!!"<<endl;                    }                }            }        }    }    return 0;}int Sushu(int index){    //int y=sqrt(index);    int z;    for(int m=2;m<index;m++)    {        if(index%m==0)        {            z=0;            break;//没有break这个程序就是错的        }else        {            z=index;        }    }    return z;}