How to get all the combination of the sum of two prime numbers for a given number in C

1 Answer

0 votes
#include <stdio.h>
#include <math.h>
 
_Bool isPrime(int n);
 
int main(int argc, char **argv)
{
    int n = 36, i, prime = 0;

    for (i = 2; i <= n/2; ++i)
    {
        if (isPrime(i))
        {
            if (isPrime(n-i))
            {
                printf("%d = %d + %d\n", n, i, n - i);
                prime = 1;
            }

        }
    }

    if (prime == 0)
        printf("%d don't have sum of two prime numbers", n);
     
    return(0);
}
 
_Bool isPrime(int n)
{
    if (n == 0) return 0;
    if (n == 1) return 0;
    for (int i = 2; i <= sqrt(n); i++)
    {
        if (n % i == 0)
            return 0;
    }
    return 1;
}
 
/*
run:
 
36 = 5 + 31
36 = 7 + 29
36 = 13 + 23
36 = 17 + 19
 
*/

 



answered May 21, 2017 by avibootz
edited May 22, 2017 by avibootz
...