Exemplo para verificar se um inteiro (inserido pelo usuário) pode ser expresso como a soma de dois números primos de todas as combinações possíveis com o uso de funções.
Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação C ++:
- C ++ para Loop
- C ++ if, if … else e aninhado if … else
- Funções C ++
- Tipos de funções definidas pelo usuário em C ++
Este programa pega um inteiro positivo do usuário e verifica se esse número pode ser expresso como a soma de dois números primos.
Se o número puder ser expresso como a soma de dois números primos, a saída mostrará a combinação dos números primos.
Para executar esta tarefa, uma função definida pelo usuário é criada para verificar o número primo.
Exemplo: verifique se um número pode ser expresso como a soma de dois números primos
#include using namespace std; bool checkPrime(int n); int main() ( int n, i; bool flag = false; cout <> n; for(i = 2; i <= n/2; ++i) ( if (checkPrime(i)) ( if (checkPrime(n - i)) ( cout << n << " = " << i << " + " << n-i << endl; flag = true; ) ) ) if (!flag) cout << n << " can't be expressed as sum of two prime numbers."; return 0; ) // Check prime number bool checkPrime(int n) ( int i; bool isPrime = true; // 0 and 1 are not prime numbers if (n == 0 || n == 1) ( isPrime = false; ) else ( for(i = 2; i <= n/2; ++i) ( if(n % i == 0) ( isPrime = false; break; ) ) ) return isPrime; )
Resultado
Insira um número inteiro positivo: 34 34 = 3 + 31 34 = 5 + 29 34 = 11 + 23 34 = 17 + 17
Neste programa, usamos a checkPrime()
função para verificar se um número é primo ou não.
Em main()
, pegamos um número do usuário e o armazenamos na variável n.
Também inicializamos um bool
sinalizador de variável para false
. Usamos essa variável para determinar se o número de entrada pode ser expresso como a soma de dois números primos.
Em seguida, iteramos um loop de i = 2
para i = n/2
. Em cada iteração, verificamos se i é um número primo ou não.
Se i é primo, verificamos se n - i é primo ou não.
Se n - i também for primo, então sabemos que n pode ser expresso como a soma de dois números primos ie n - i.
Assim, imprimimos o resultado na tela e alteramos o valor do sinalizador para true
. Caso contrário, a bandeira permanece false
.
Este processo continua até que o loop termine.
Se flag for still false
, então sabemos que n não pode ser expresso como a soma de dois primos e imprimimos essa mensagem na tela.