您的位置:首页 > 其它

哥德巴赫猜想(验证2000以内的正偶数能够分解成两个素数之和)

2017-02-23 09:02 351 查看
哥德巴赫猜想:

          任何一个大于6的偶数都可以表示成两个素数之和,任何一个大于9的奇数都可以表示成三个素数之和。

试验证2000以内的正偶数能够分解成两个素数之和:

#include <iostream>
#include <math.h>
using namespace std;
//验证2000以内的正偶数能够分解成两个素数之和
//判断是否为素数
int fflag(int i)
{
int j;
//<=1不是素数
if(i<=1)
{
return 0;
}
//2是素数
if(i==2)
{
return 1;
}
//如果是偶数返回0
if(!(i%2))
{
return 0;
}
for(j=3;j<=(int)(sqrt((double)i)+1);j+=2)
{
if(!(i%j))
{
return 0;
}
return 1;
}
}
int main(int argc, char** argv) {
int i,n;
//2000以内的正偶数,从4开始,步长为2
for(i=4;i<=2000;i++)
{
for(n=2;n<i;n++)//将偶数i分解为两个整数
{
if(fflag(n))//从2开始循环判断是否为素数
if(fflag(i-n))//判断i-n是否为素数
{//分解为两个素数之和则输出
cout<<i<<"="<<n<<"+"<<i-n<<endl;
break;
}
}
if(n==i)
cout<<"error\n";
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: