写一个函数验证哥德巴赫猜想:一个不小于6的偶数可以表示成2个素数的和。输入为一个大于6的偶数,输出所有和为该数的素数对。
#include <iostream>
#include<math.h>
using namespace std;
/*总体思路:1.需要一个函数验证是否为素数
2.需要一个函数验证是否符合哥德巴赫猜想
所以, 1.先写一个主函数,输入一个大于六的偶数x,
2.然后进入哥德巴赫猜想,并写出所有符合要求的素数。
3.在哥德巴赫猜想中进入验证素数的函数,在这个函数中需要一个flag判断是否为素数,在此处,flag只有1或0,所以使用了布尔类型
4.判断出一个素数i之后,只需要再判断x-i是否为是素数即可。注意:(1)因为要写出所有符合的素数,所以要写一个循环 (2)要另外设置一个整型a,使a=i,避免改变I的值,从而打乱循环
*/
bool prime(int n); //验证是否为素数
void godbaha(int n); //哥德巴赫猜想
int main()
{
void godbaha(int n);
int x;
bool prime(int m);
cout << "Please input a number:" ;
cin >> x;
if (x < 6 || x%2!=0)cout << "请输入一个不小于6的偶数。";
else godbaha(x);
return 0;
}
void godbaha(int n) {
int a, b, i;
for (i = 3; i <= n / 2; i++) {
if (prime(i)) {
a = i;
b = n - a;
if (prime(b)) cout << n << "=" << a << "+" << b << endl;
}
}
}
bool prime(int n)
{
int i;
int flag = 0;
if (n % 2 != 0) {
for (i = 3; i < int(sqrt(n) + 1); i++) {
if (n % i == 0) {
flag = 1;
break;
}
}if (flag == 0)return 1;
else return 0;
}
}
标签:函数,验证,int,一个,素数,哥德巴赫猜想
From: https://blog.csdn.net/2301_80161204/article/details/137465421