/*
2015软件笔试题 证明哥德巴赫猜想中1到2000之内的偶数可以表示成两个质数之和
*/
#include "iostream"
#include "stdio.h"
#include "math.h"
using namespace std;
int isNumber(int p);
int main()
{
int i;
cout << "Please input an even number(1<n<2000): " <<endl;
scanf(" %d", &i);
if(i>=2 && i<=2000 && i%2==0)
{
for(int j=1; j!=(i/2+1); j++)
{
int k=i-j;
int result1,result2;
result1 = isNumber(j);
result2 = isNumber(k);
if(result1==2 && result2==2)
{
cout << "find it!!" <<endl;
cout << i << " =" << j << " + " << k <<endl;
return 0;
}
}
cout << "can not find right even number" <<endl;
return -1;
}
else
{
cout<<"Input ERR, please input right even number" <<endl;
return -1;
}
}
int isNumber(int p)
{
int count=0;
if(p==1)
{
count = 2;
return count;
}
else
{
for(int i=1; i!=p+1; i++)
{
if(p%i == 0)
{
++count;
if(count > 2)
return -1;
}
}
return count;
}
}
1到2000之内的偶数可以表示成两个质数之和
最新推荐文章于 2022-05-09 14:29:07 发布