此处验证的猜想为:任何一个不小于6的偶数可以表示为两个素数之和。
例如:6=1+5;
#include <iostream>
#include <cmath>
using namespace std;
int n;
void gotbaha();
bool prime (int x);
int main()
{
cout<<"please input an even number greater than or equal to 6:";//输入一个大于等于6的偶数。
cin>>n;
while(n<6||n%2!=0)//判断输入的数是否符合要求,不符合则重新输入。
{
cout<<"error!"<<endl<<"please input again."<<endl;
cout<<"please input an even number greater than or equal to 6:";
cin>>n;
}
gotbaha();
return 0;
}
void gotbaha()
{
int a,b;
for(a=1;a<n;a++)
{
b=n-a;
if((a<=b)&&(prime(a)==1)&&(prime(b)==1))
{
cout<<n<<"="<<a<<"+"<<b<<endl;
}
}
}
bool prime(int x)
{
bool prime;
int k,i;
k=int(sqrt(x));
prime=true;
for(i=2;i<=k;i++)
{
if(x%i==0)
{
prime=false;
break;
}
}
return prime;
}