有兴趣的马上来看看吧(题目)
四、编程验证哥德巴赫猜想之一:任何大于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;
}