问题描述:
编写程序验证哥德巴赫猜想: 一个不小于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;
}