一个不小于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;
}


本文介绍了一个简单的C++程序,该程序实现了哥德巴赫猜想:任何一个不小于6的偶数都可以表示为两个素数之和。通过定义判断素数的函数并使用基本算法找出符合条件的素数对。
1万+

被折叠的 条评论
为什么被折叠?



