Maison > développement back-end > C++ > 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
Libérer: 2023-08-31 16:29:16
avant
1303 Les gens l'ont consulté

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
Copier après la connexion

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;
}
Copier après la connexion

Sortie

3 + 2 + 2
Copier après la connexion

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal