哥德巴赫猜想的原本,是任一大于2的整数,都可以表示成三个质数之和(当时规定1也是质数)。
另一位大数学家欧拉,将其进一步描述为“任一大于2的偶数,都可以写成两个质数之和”。
1966年,我国著名数学家陈景润,成功证明了“任一充分大的偶数,都可以表示成一个质因子个数不超过1的数,和另一个质因子个数不超过2的数之和”,简述为“1+2”,距离哥德巴赫猜想仅一步之遥。
代码如下:
#include <iostream>
using namespace std;
//判断是否是质数
int prime(int n)
{
int i;
if (n < 2)
return 0;
for (i = 2; i < n; i++)
{
if (n % i == 0)
return 0;
}
return 1;
}
int main()
{
int n;
cin >> n;
for (int i = 2; i <= n; i += 2) //只处理偶数
{
int j = 2;
for (; j <= n / 2; j++)
{
if (prime(j) && prime(i - j)) //判断j 和 i-j是否是质数,如果是,说明i满足哥德巴赫猜想,并且 i = j + (i-j)
{
cout << i << "=" << j << "+" << i - j << endl; //输出等式,因为题目只要求输出1个等式,所以,只有找到一个满足的等式,就可以break了
break;
}
}
}
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!