@azmddy
2018-07-23T10:40:04.000000Z
字数 834
阅读 529
算法
1742年6月7日日哥德巴赫写信给当时的大数学家的欧拉,正式提出了一下猜想:
a.任何一个大于6的偶数都可以表示成两个素数成之和。
b.任何一个大于9的奇数都可以表示成三个素数之和。
在这里,通过程序证明猜想 a。
素数,又称质数,它是指:除了1和其本身之外,没有其它约数的正整数。最小的素数是 2,1既不是素数也不是合数。
// 判断是否是素数// 是,则返回true// 不是,则返回falsebool 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;}
哥德巴赫猜想的验证很简单,但是证明却是世界级的难题!