一个不小于6的偶数可以表示为两个素数之和,比如6=3+3,8=3+5,10=3+7.....
在主函数输入一个不小于6的偶数n,然后调用函数gotbaha,在gitbaha中调用函数prime,prime的作用是判断一个数是否是素数。在gotbaha函数中输出以下形式的结果。
34=3+31
#include<bits/stdc++.h>
using namespace std;
int prime(int p){//判断一个数是否是素数
int flag=0;
int k = int(sqrt(p));
for(int i=2;i<=k;i++){
if(p%i==0) flag=1;//素数时:flag=0;
}
return flag;
}
int gotbaha(int n,int p,int q){//p是第一个素数 q是第二个素数
for( p=3;p<=n/2;p=p+2){//大于6的偶数中其中的一个素数最小只能是3
int w=0,e=0;//w e分别判断p q是否是素数
w=prime(p);//按题目要求调用prime
if(w==0){
q=n-p;
e=prime(q);
}
if(w==0&&e==0){
cout<<n<<"="<<p<<"+"<<q<<endl;
break;//如果想得到全部情况,把break去掉即可
}
}
}
int main(){
int n,p,q;
cin>>n;
gotbaha(n,p,q);
return 0;
}