第四题:编写程序验证歌德巴赫猜想:一个大于等于6的偶数可以表示为两个素数之和.提示:输入一个大于等于6的数n,将其拆成两个数之和n=a+b,第1 个数a从2到n/2,第2 个数为b=n-a,判断,如果a和b都是素数则输出.

问题描述:

第四题:编写程序验证歌德巴赫猜想:一个大于等于6的偶数可以表示为两个素数之和.
提示:输入一个大于等于6的数n,将其拆成两个数之和n=a+b,第1 个数a从2到n/2,第2 个数为b=n-a,判断,如果a和b都是素数则输出.

a=2
b=4

bool Prime(n)
{
bool p=true;
for(int i=2;i{
if(n%i==0)
p=false;
}
return p;
}

验证又不是证明.
另外,算法应该很简单吧,c++程序如下
bool Prime(n)
{
bool p=true;
for(int i=2;i{
if(n%i==0)
{
p=false;
exit;
}
}
return p;
}
bool Goldbach(n)
{
bool goldbach=false;
for(int i=2;i{
if(Prime(i)&&Prime(n-i))
goldbach=true;
}
return goldbach;
}
在主函数里调用Goldbach()即可

数学上的明珠验证了吗?我记得我读高中时这难题好像都没攻克。