描述
写一个函数验证哥德巴赫猜想:一个不小于6 的偶数可以表示为两个素数之和,如6 = 3 + 3,8 = 3 + 5,10=3 +7……在主函数中输入一个不小于6 的偶数 n,然后调用数 gotbaha,在 gotbaha 函数中再调用 prime 函数,prime 函数的作用是判别一个数是否素数。在 godbah 函数中输出以下形式的结果:
34 =3+31
输入
输入一个不小于6 的偶数
输出
输出一个式子
输入样例 1
34
输出样例 1
34=3+31
#include <iostream>
using namespace std;
void gotbaha(int); //函数gotbaha的外部声明
int main()
{
int n;
cin >> n; //输入一个不小于6的偶数,可以在程序中设定这一输入条件(不小于6且为偶数),但本程序中没有设定
gotbaha(n); //调用函数gotbaha来验证哥德巴赫猜想
return 0;
}
void gotbaha(int a) //函数定义
{
int prime(int b); //判断素数的内部函数声明
int i, j;
for (i = 2; i < a; i++) //从第一个加数开始遍历
{
j = a - i;
if (prime(i)&&prime(j)) //判断遍历到的第一个加数和运算得出的第二个加数是否为素数
{
cout << a << "=" << i << "+" << j;
break;
}
}
}
int prime(int b) //判别一个数是否为素数
{
int k=1; //当b=2时,k为1,则不需要进入下面的循环
for (int i = 2; i < b; i++)
{
if (b % i != 0)k = 1;
else //如果出现可以整除的情况则不是素数
{
k = 0;
break;
}
}
return k; //返回1或者0,if判断语句只有在括号内为非0值时才会继续运行if语句中的代码
}