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

求验证哥德巴赫猜想

k3552 发布于 2022-04-17 15:09, 1283 次点击
哥德巴赫猜想:任何一个大于6的偶数均可表示为两个素数之和。输入两个整数m,n(),将m,n之间的偶数表示成两个素数之和。例如偶数M=a+b,其中a和b是素数,且a<b,a是所有成立的等式中最小的素数(例如:10=3+7,10=5+5,则只保留前面的式子)。
示例:
1 回复
#2
不会游泳的虾2022-04-21 14:54
供参考:
程序代码:
#include <stdio.h>
int  isPrime(int n)
{
    int i;
    if (n <= 3)  return n > 1;
    for (i = 2; i * i <= n; i++)
        if (n % i == 0) return 0;
    return 1;
}
int main()
{
    int i, m, n, k;
    scanf("%d%d", &m, &n);
    for (k = m; k <= n; k++)
    {
        if (k % 2 != 0) continue;
        else{
            for (i = 2; i <= k / 2; i++) {
                if (isPrime(i) && isPrime(k - i))
                {
                    printf("%-d=%-d+%-d\n", k, i, k - i);//输出
                    break;
                }
            }
        }
    }
    return 0;
}
1