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; }
posted on 2014-08-07 16:31 Ji_xiaowu 阅读(1154) 评论(0) 编辑 收藏 举报