问题描述:
编写程序验证哥德巴赫猜想: 一个不小于6的偶数可以表示为两个素数之和,如6=3+3, 8=3+5, 10=3+7,…
要求:
(1)子函数prime函数,prime函数的作用是判别一个数是否为素数,返回一个整数(0表示非素数,1表示素数)
(2)子函数gotbaha函数,调用prime函数,输出该数的所有素数和对
(3)在主函数中输入一个不小于6的偶数n,然后调用函数gotbaha。
样例输入:
104
样例输出:
104=3+101
104=7+97
104=31+73
104=37+67
104=43+61
测试输入:
18
测试输出:
18=5+13
18=7+11
测试输入:
22
测试输出:
22=3+19
22=5+17
22=11+11
#include <iostream>
#include <cmath>
using namespace std;
int main() {
void godbaha(int);
int n;
cin>>n;
godbaha(n);
return 0;
}
void godbaha(int n) {
int prime(int m);
for(int j=2; j<=n/2; j++)
if(prime(j))
if(prime(n-j))
cout<<n<<"="<<j<<"+"<<n-j<<endl;
}
int prime(int m) {
int p=1;
for(int i=2; i<m; i++)
if(m%i==0) {
p=0;
break;
}
return p;
}