#include <stdio.h>
#include <math.h>
#include <stdbool.h>
int isPrime(int n) {
if (n < 2 || (n % 2 == 0 && n != 2)) {
return 0;
}
int count = floor(sqrt(n));
for (int i = 3; i <= count; i += 2) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main(void) {
int n = 38;
bool has_primes = false;
for (int i = 2; i <= n / 2; i++) {
if (isPrime(i)) {
if (isPrime(n - i)) {
printf("%d = %d + %d\n", n, i, n - i);
has_primes = true;
}
}
}
if (!has_primes)
printf("%d cannot be expressed as a sum of two prime numbers", n);
return 0;
}
/*
run:
38 = 7 + 31
38 = 19 + 19
*/