Maison  >  Article  >  développement back-end  >  Représenter un nombre comme la somme du plus grand nombre possible de nombres premiers en C++

Représenter un nombre comme la somme du plus grand nombre possible de nombres premiers en C++

PHPz
PHPzavant
2023-08-31 16:29:161209parcourir

Représenter un nombre comme la somme du plus grand nombre possible de nombres premiers en C++

Discutez d'un problème, par exemple, étant donné un nombre N, nous devons diviser le nombre en le plus grand nombre premier et

Input: N = 7
Output: 2 2 3
Explanation: 7 can be represented as the sum of two 2’s and a 3 which are the maximum possible prime numbers.

Input : N = 17
Output: 2 2 2 2 2 2 2 3

Méthode de solution

Afin de représenter un nombre en termes de nombres premiers, nous pouvons soustraire un nombre premier à partir de N, puis vérifiez les différences entre les nombres premiers. Si la différence est un nombre premier, alors on peut exprimer N comme la somme de deux nombres premiers.

Mais ici, il faut trouver le nombre maximum de nombres premiers et pour cela il faut prendre les nombres premiers minimum c'est à dire 2 et 3. Nous pouvons former n’importe quel nombre entre 2 et 3.

  • Vérifiez le nombre de nombres pairs ; s'il s'agit d'un nombre pair, il peut être composé de la somme de (N/2) 2.

  • peut être composé d'une somme de trois [(N-3)/2] ou de 2 s'il s'agit d'un nombre impair.

  • De cette façon, nous pouvons utiliser la somme des plus grands nombres premiers pour représenter N.

Exemple

#include <bits/stdc++.h>
using namespace std;
int main(){
   int N = 7;
   // checking if N is odd,
   // If yes, then print 3
   // and subtract 3 from N.
   if (N & 1 == 1) {
      cout << "3 +";
      N -= 3;
   }
   // // keep subtracting and printing 2
   // until N is becomes 0.
   while (N!=2) {
      cout << " 2 +";
      N -= 2;
   }
   cout << " 2";
   return 0;
}

Sortie

3 + 2 + 2

Conclusion

Dans ce tutoriel, nous avons discuté de la représentation d'un nombre comme la somme des plus grands nombres premiers. Nous avons discuté d’une manière simple de résoudre ce problème, qui consiste à exprimer le nombre comme la somme de 2 et 3. Nous avons également discuté des programmes C++ pour résoudre ce problème, que nous pouvons implémenter à l'aide de langages de programmation comme C, Java, Python, etc. Nous espérons que vous avez trouvé ce tutoriel utile.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer