📄 验证“哥德巴赫猜想”.cpp
字号:
// Example:验证“哥德巴赫猜想”
#include<iostream.h>
# define M 10001 // 定义验证范围
// 函数CreatPrimeList():生成素数表
void CreatPrimeList(int PrimeList[])
{
int i,j;
// 将PrimeList的各元素设置为从0开始的正整数
for(i=0;i<M;i=i+1)
PrimeList[i]=i;
// 分别从表中去掉已经确定的各素数的倍数(将其置为0)
i=2;
while(i<M/2)
{
for(j=i+1;j<M;j=j+1)
if(PrimeList[j]!=0 && PrimeList[j]%PrimeList[i]==0)
PrimeList[j]=0;
// 确定下一个素数的位置
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的范围内验证哥德巴赫猜想
int main()
{
int PrimeList[M]; // 说明存放素数表的数组
int x,p;
// 建立素数表
CreatPrimeList(PrimeList);
// 对从4到M的所有偶数验证哥德巴赫猜想
x=4;
while(x<M)
{
// 检查偶数减去一个素数后的剩余部分是否仍为素数
p=PrimeList[2];
while(p<=x/2 && PrimeList[x-p]==0)
p=NextPrimeNumber(p,PrimeList);
// 输出检查结果
if(p>x/2) // 找到了一个不能分解为两个素数和的偶数
cout<<"伟大发现:哥德巴猜想是错误的!"<<endl;
else // PrimeList[x-p]!=0,分解成功
cout<<"这些数字为:"<<x<<" = "<<p<<" + "<<x-p<<endl;
// 检查下一个偶数
x=x+2;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -