while(PrimeList[i]==o) //函数 NextPrime Number(:求下一个素数 int NextPrime Number (int p, int PrimeList p=p+1; while(PrimeList [p]==0) return PrimeList lp] ∥/主函数:在从4到M的范围内验证哥德巴赫猜想 void maino int PrimeList [MI /说明存放素数表的数组 ∥/变量x:偶数,p:素数 //建立素数表 CreatPrimeList(PrimeList ∥/对从4到M的所有偶数验证哥德巴赫猜想 hile(x<M) /检查偶数减去一个素数后的剩余部分是否仍为素数 while(p<M/2&& PrimeList[x-p]=0) p= NextPrime Number (p, PrimeList) /输出检査结果 f(p>=M/2)//找到了一个不能分解为两个素数和的偶数 cout<< Great discovery: Goldbach is wrong !"<<endl else // Primelist[xp]≠0,分解成功 cout<< The even number"<<x<<="<<p<< +<<x-p<<endl ∥/检查下一个偶数第 2 单元 控制结构 - 27 - i = i+1; while(PrimeList[i]==0) i = i+1; } } // 函数 NextPrimeNumber(): 求下一个素数 int NextPrimeNumber(int p, int PrimeList[]) { p = p+1; while(PrimeList[p]==0) p = p+1; return PrimeList[p]; } // 主函数: 在从 4 到 M 的范围内验证哥德巴赫猜想 void main() { int PrimeList[M]; // 说明存放素数表的数组 int x, p; // 变量 x: 偶数, p: 素数 // 建立素数表 CreatPrimeList(PrimeList); // 对从 4 到 M 的所有偶数验证哥德巴赫猜想 x = 4; while(x<M) { // 检查偶数减去一个素数后的剩余部分是否仍为素数 p = PrimeList[2]; while(p<M/2 && PrimeList[x-p]==0) p = NextPrimeNumber(p,PrimeList); // 输出检查结果 if(p>=M/2) // 找到了一个不能分解为两个素数和的偶数 cout<<"Great discovery: Goldbach is wrong!"<<endl; else // PrimeList[x-p]≠0, 分解成功 cout<<"The even number "<<x<<"="<<p<<" + "<<x-p<<endl; // 检查下一个偶数 x = x+2; } }