@azmddy
2018-07-23T18:40:04.000000Z
字数 834
阅读 449
算法
1742年6月7日日哥德巴赫写信给当时的大数学家的欧拉,正式提出了一下猜想:
a.任何一个大于6的偶数都可以表示成两个素数成之和。
b.任何一个大于9的奇数都可以表示成三个素数之和。
在这里,通过程序证明猜想 a。
素数,又称质数,它是指:除了1和其本身之外,没有其它约数的正整数。最小的素数是 2,1既不是素数也不是合数。
// 判断是否是素数
// 是,则返回true
// 不是,则返回false
bool IsPrimeNumber(int i)
{
if (i <= 1) {
return false;
}
else if (i == 2) {
return true;
}
else {
for (int j = 2; j < i; j++) {
if (i%j == 0) { //如果含有其它约数,则表明不是素数
return false;
}
else if (j < i - 1) {
continue;
}
else {
return true;
}
}
}
}
任何一个大于6的偶数都可以表示成两个素数成之和。
首先需要一个数分解成两个数,然后分别验证它们是不是素数。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int k = 0;
int n = 0;
for (int i = 6; i < 100; i+=2) {
for (int j = 2; j < i / 2; j++) {
k = i - j;
if (IsPrimeNumber(j)) {
if (IsPrimeNumber(k)) {
cout << setw(3) << i << "=" << setw(3) << j << "+" << setw(3) << k << "\t";
n++;
if (n % 5 == 0) {
n = 0;
cout << endl;
}
}
}
}
}
system("pause");
return 0;
}
哥德巴赫猜想的验证很简单,但是证明却是世界级的难题!