验证哥德巴赫猜想(C语言)

哥德巴赫猜想:任一大于2的偶数都可写成两个质数之和。(——欧拉提出的观点)

代码如下:

#include
#include
#include

bool isprime(int n)
{
    if (n < 2)
        return false;
    for (int i = 2; i <= sqrt(n); i++)
    {
        if (n % i == 0)
        {
            return false;
        }
    }
    return true;
}

bool goldbach(int num)
{
    if (num <= 2)
        return false;
    for (int i = 2; i <= num/2; i++)
    {
        if (isprime(i) && isprime(num - i))
        {
            return true;
        }
    }
    return false;
}

int main()
{
    int n;
    scanf_s("%d", &n);
    if (n % 2 == 0)
    {
        if (goldbach(n))
        {
            printf("%d可以被分解为两个素数之和.\n", n);
        }
        else
            printf("%d不可以被分解为两个素数之和.\n", n);
    }
    else
        printf("请输入偶数.\n");
    return 0;
}

你可能感兴趣的:(c语言)