关于#哥德巴赫猜想#的问题,如何解决?

哥德巴赫猜想的原本,是任一大于2的整数,都可以表示成三个质数之和(当时规定1也是质数)。

另一位大数学家欧拉,将其进一步描述为“任一大于2的偶数,都可以写成两个质数之和”。

1966年,我国著名数学家陈景润,成功证明了“任一充分大的偶数,都可以表示成一个质因子个数不超过1的数,和另一个质因子个数不超过2的数之和”,简述为“1+2”,距离哥德巴赫猜想仅一步之遥。

img

代码如下:


#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;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632