注册 登录
编程论坛 C语言论坛

如何根据提供的数据来编程验证欧拉版本的哥德巴赫猜想?

魏岐峰 发布于 2022-11-13 21:29, 703 次点击
1742年,哥德巴赫给欧拉的信中提出了以下猜想:任一大于2的整数都可写成三个质数之和。但是哥德巴赫自己无法证明它,于是就写信请教赫赫有名的大数学家欧拉帮忙证明,然而欧拉也无法证明。欧拉在回信中提出了另一等价版本,即任一大于2的偶数都可写成两个质数之和。现在需要你根据提供的数据来编程验证欧拉版本的哥德巴赫猜想。
输入
若干行1000以内的大于2的偶数,每个偶数一行。
输出
若干行素数对,它们之和等于对应行的偶数,要求第一个素数尽可能小。
样例输入 Copy
18
16
4
样例输出 Copy
5 13
3 13
2 2
1 回复
#2
apull2022-11-17 09:57
程序代码:

#include <stdio.h>
#include <math.h>

int ispr(int n)
{
    for (int i = 2; i <= sqrt(n); i++)
        if (n % i == 0)
            return 0;

    return 1;
}

int main()
{
    int n, i, k;
    while (~scanf("%d", &n))
    {
        if (n % 2 != 0)
            continue;
        for (i = 2; i < n; i++)
        {
            k = n - i;
            if (ispr(i) && ispr(k))
            {
                printf("%d %d\n", i, k);
                break;
            }
        }
    }
    return 0;
}

1