四、编程验证哥德巴赫猜想之一:任何大于5的奇数都可表示为3个素数之和(且不唯一)。请编程验证从9到999999间的所有奇数是否符合这个猜想。
我只能证到99999再大一位运算量太惊人了.
#include <iostream.h> #include <stdlib.h> main() { long i,j[20000]={0},x; int m=0,y=1; cout<<"找出全部素数..."<<endl; for(x=1;x<=99999;x+=2) { y=1; for(i=2;i<=x/2;i++) if(x%i==0) {y=0;break;} if(y==1) { j[m]=x; m++; } } m=0; cout<<"开始验证哥德巴赫猜想..."<<endl; for(x=9;x<=99999;x+=2) { for(int z=0;j[z]<x;z++) for(int q=z+1;j[q]<x;q++) for(int w=q+1;j[w]<x;w++) if(j[z]+j[q]+j[w]==x) { //cout<<j[z]<<"\t"<<j[q]<<"\t"<<j[w]<<"\t"<<x<<endl; m=1; goto _NEXT; } _NEXT: if(m!=1) { cout<<x<<endl; cout<<"不成立!"<<endl; exit(0); } } cout<<"成立!"<<endl; }