Programme C ++ pour vérifier si un nombre peut être exprimé sous forme de somme de deux nombres premiers

Exemple pour vérifier si un entier (saisi par l'utilisateur) peut être exprimé comme la somme de deux nombres premiers de toutes les combinaisons possibles avec l'utilisation de fonctions.

Pour comprendre cet exemple, vous devez avoir la connaissance des rubriques de programmation C ++ suivantes:

  • C ++ pour Loop
  • C ++ if, if… else et Nested if… else
  • Fonctions C ++
  • Types de fonctions définies par l'utilisateur en C ++

Ce programme prend un entier positif de l'utilisateur et vérifie si ce nombre peut être exprimé comme la somme de deux nombres premiers.

Si le nombre peut être exprimé comme la somme de deux nombres premiers, la sortie montre la combinaison des nombres premiers.

Pour effectuer cette tâche, une fonction définie par l'utilisateur est créée pour vérifier le nombre premier.

Exemple: vérifier si un nombre peut être exprimé sous forme de somme de deux nombres premiers

 #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; ) 

Production

 Entrez un entier positif: 34 34 = 3 + 31 34 = 5 + 29 34 = 11 + 23 34 = 17 + 17 

Dans ce programme, nous utilisons la checkPrime()fonction pour vérifier si un nombre est premier ou non.

Dans main(), nous prenons un nombre à l'utilisateur et le stockons dans la variable n.

Nous initialisons également un boolindicateur de variable à false. Nous utilisons cette variable pour déterminer si le nombre d'entrée peut être exprimé comme la somme de deux nombres premiers.

Nous itérons ensuite une boucle de i = 2à i = n/2. A chaque itération, on vérifie si i est un nombre premier ou non.

Si i est un nombre premier, on vérifie si n - i est premier ou non.

Si n - i est également un nombre premier, alors nous savons que n peut être exprimé comme la somme de deux nombres premiers i et n - i.

Nous imprimons donc le résultat à l'écran et changeons la valeur de flag en true. Sinon, le drapeau reste false.

Ce processus se poursuit jusqu'à la fin de la boucle.

Si l'indicateur est toujours false, alors nous savons que n ne peut pas être exprimé comme la somme de deux nombres premiers, et nous imprimons ce message à l'écran.

Articles intéressants...