验证 哥德巴赫猜想
2.写一个函数验证哥德巴赫猜想,一个不小于6的偶数可以表示为两个素数之和,如6=3+3,8=3+5,10=3+7……在主函数中输入一个不小于6的偶数n,然后调用函数goldbach,在goldbach函数中再调用prime函数,prime函数的作用是判断一个数是否为素数。在goldbach函数中输出以下形式的结果:34=3+31。运行时输入该偶数的值为6,12,20,458,分析运行结果。如果输入2,4,会出现什么情况?修改程序,使之能输出相应的信息。
#include
#include<math.h>
using namespace std;
int prime(int n);
void goldbach(int n);
int main(){
int n;
while(1)
{
cin>>n;
goldbach(n);
}
}
void goldbach(int n)
{
if(n<6)
cout<<“输入错误,请输入一个不小于6的偶数”<<endl;
else
{
int i,j;
for(i=2;i<n;i++)
{
for(j=3;j<n;j++)
{
if(prime(i)==1&&prime(j)==1&&i<=j&&((i+j)==n))
{
cout<<n<<"="<<i<<"+"<<j<<endl;
}
}
}
}
}
int prime(int n)
{
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)
return 0;
}
return 1;
}