C程序 检查一个数字是否可以表示为两个素数之和

C程序 检查一个数字是否可以表示为两个素数之和

在这里,我们将用C语言程序看看一个数字是否可以表示为两个质数之和。下面是这些例子。

输入: 7
输出: Yes
解释: 7可以表示为2和5的质数之和

输入: 11
输出: No
解释: 没有两个质数的总和是11。

方法: 我们的想法是,从2到N进行循环,检查i和N-i是否为质数。

下面是检查一个数字是否可以表示为两个质数之和的C语言程序。

// C program to check whether a
// number can be expressed as sum
// of two prime numbers
#include <stdio.h>
 
// Function to check prime number
int isPrime(int n)
{
    int i, isPrime = 1;
 
    // 0 and 1 are not prime numbers
    if (n == 0 || n == 1)
    {
        isPrime = 0;
    }
    else
    {
        for (i = 2; i <= n / 2; ++i)
        {
            if (n % i == 0)
            {
                isPrime = 0;
                break;
            }
        }
    }
 
    return isPrime;
}
 
// Driver code
int main()
{
    int n = 7, i, flag = 0;
 
    for (i = 2; i <= n / 2; ++i)
    {
        // condition for i to be a
        // prime number
        if (isPrime(i) == 1)
        {
            // condition for n-i to
            // be a prime number
            if (isPrime(n - i) == 1)
            {
                printf("Yes\n");
                return 0;
            }
        }
    }
 
    printf("No\n");
    return 0;
}

输出

Yes

时间复杂度: O(N 2 )
辅助空间: O(1)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C语言 实例