C++程序设计(第三版) 谭浩强 习题4.7 个人设计
习题 4.7 写一个函数验证哥德巴赫猜想:一个不小于6的偶数可以表示为两个素数之和,如6=3+3,8=3+5,10=3+7···在主函数中输入一个不小于6的偶数n,然后调用函数gobaha函数中再调用prime函数,prime函数的作用是判别一个数是否为素数。在gobaha函数中输出以下形式的结果:34=3+31。
代码块:
#include <iostream>
using namespace std;
void gobaha(int n); //定义函数gobaha
int prime(int n); //定义prime函数
int main()
{
int num;
cout<<"Please enter number: ";
cin>>num;
for (; num<6||(num%2)!=0; ){ //如果输入数字不符合条件重复执行输入
cout<<"Error! Retry!\nPlease enter number: ";
cin>>num;
}
gobaha(num);
system("pause");
return 0;
}
int prime(int n)
{
int i;
for (i=2; i<n&&(n%i!=0); i++);
return n==i ? 1 : 0; //判断是否为素数,是返回1,否返回0
}
void gobaha(int n)
{
int m, i;
for (i=3; i<n; i++)
if (prime(i)==1){
m=n-i;
if (prime(m)==1&&i<=m)
cout<<n<<'='<<i<<'+'<<m<<endl;
}
}