/* Dado um inteiro n > 0, decide se existem primos p e q tais que n = p + q. */ #include /* devolve 1 se n é primo e 0 caso contrário */ int ehPrimo (int n); int main(){ int n, p, q, achei = 0; printf("Digite n: "); scanf("%d", &n); for (p = 2; p < n - 2 && !achei; p++){ if (ehPrimo (p)){ q = n - p; if (ehPrimo (q) == 1){ achei = 1; break; } } } if (achei == 0){ printf ("Não existem primos que somam %d\n", n); } else printf ("%d + %d = %d\n", p, q, n); return 0; } int ehPrimo (int n) { int cont = 1, div; for (div = 1; div <= n/2; div++) if (n % div == 0) cont = cont + 1; if (cont == 2) return 1; return 0; }