Table des matières
Grammaire
Algorithme
Méthode 1 : Méthode naïve
Exemple
Sortie
Explication
Méthode 2 : Décomposition en facteur premier
Conclusion
Maison développement back-end C++ En C++, traduisez ce qui suit en chinois : Comptez le nombre de nombres entre L et R qui sont premiers par rapport à P

En C++, traduisez ce qui suit en chinois : Comptez le nombre de nombres entre L et R qui sont premiers par rapport à P

Aug 26, 2023 pm 09:33 PM
r 计算 l Relativement premier quantité.

En C++, traduisez ce qui suit en chinois : Comptez le nombre de nombres entre L et R qui sont premiers par rapport à P

Dans le monde de la programmation informatique, trouver le nombre de nombres dans une plage donnée qui sont premiers par rapport à un nombre spécifique peut être une tâche courante. Les nombres relativement premiers, également appelés nombres premiers relatifs, sont des nombres qui n'ont pas de facteur commun autre que 1. Dans cet article, nous explorerons la recherche du nombre de nombres relativement premiers par rapport à un nombre spécifique P entre les entiers donnés L et R en utilisant le langage C++.

Grammaire

Nous allons d'abord décrire la syntaxe des méthodes que nous utiliserons dans les exemples de code suivants -

int countCoprimes(int L, int R, int P);
Copier après la connexion

Algorithme

L'algorithme que nous utiliserons pour calculer le nombre de nombres premiers entre eux est le suivant −

  • Initialisez la variable count à 0, qui est utilisée pour stocker le nombre de nombres premiers entre eux.

  • Itérez chaque numéro en commençant par L jusqu'à R.

  • Pour chaque nombre, vérifiez s'il est relativement premier avec P.

  • Si num et P sont relativement premiers, augmentez le nombre de 1.

  • Renvoie la valeur finale du nombre.

Méthode 1 : Méthode naïve

La première méthode dont nous discuterons est la méthode naïve. Afin de vérifier la coprimité avec P à l'aide de l'algorithme d'Euclide, cette méthode nécessite de vérifier itérativement chaque nombre dans une plage spécifiée.

La traduction chinoise de

Exemple

est :

Exemple

#include <iostream>

int countCoprimes(int L, int R, int P) {
   int count = 0;
   for (int num = L; num <= R; num++) {
      int a = num;
      int b = P;
      while (b != 0) {
         int temp = b;
         b = a % b;
         a = temp;
      }
      if (a == 1)
         count++;
   }
   return count;
}

int main() {
   int L = 1; // Set the starting range value
   int R = 100; // Set the ending range value
   int P = 7; // Set the value of P
   
   int result = countCoprimes(L, R, P);
    
   std::cout << "Count of numbers between " << L << " and " << R << " coprime with " << P << ": " << result << std::endl;
   
   return 0;
}
Copier après la connexion

Sortie

Count of numbers between 1 and 100 coprime with 7: 86
Copier après la connexion
Copier après la connexion
La traduction chinoise de

Explication

est :

Explication

La fonction countCoprimes accepte trois paramètres : L (valeur de plage de départ), R (valeur de plage de fin) et P (valeur de P).

Dans la fonction countCoprimes, nous initialisons une variable count à 0, qui stockera le nombre de coprimes.

La boucle for itère chaque numéro numérique de L à R.

Dans la boucle, on initialise les variables a et b à num et P respectivement.

Nous utilisons l'algorithme euclidien dans une boucle while pour trouver le plus grand diviseur commun (PGCD) de a et b en échangeant et en effectuant des opérations modulaires à plusieurs reprises.

Si GCD (stocké dans a) est égal à 1, cela signifie que num et P sont premiers entre eux. Dans ce cas, nous incrémentons la variable count.

Nous finalisons notre valeur de comptage en parcourant soigneusement tous les nombres et en la renvoyant une fois terminé.

Les fonctions principales attribuent judicieusement des valeurs appropriées aux variables L, R et P.

Nous appelons ensuite la fonction countCoprimes avec la valeur fournie et stockons le résultat dans la variable result.

Enfin, nous affichons le résultat, qui est le nombre de nombres entre L et R qui sont premiers par rapport à P.

Méthode 2 : Décomposition en facteur premier

Cette stratégie consiste à exploiter la factorisation première de P pour calculer avec précision le nombre d'entiers premiers entre eux compris entre L et R.

La traduction chinoise de

Exemple

est :

Exemple

#include <iostream>
#include <unordered_set>

int countCoprimes(int L, int R, int P) {
   std::unordered_set<int> factors;
   int tempP = P;

   for (int i = 2; i * i <= tempP; i++) {
      while (tempP % i == 0) {
         factors.insert(i);
         tempP /= i;
      }
   }

   if (tempP > 1)
      factors.insert(tempP);

   int count = 0;
   for (int num = L; num <= R; num++) {
      bool isCoprime = true;
      for (int factor : factors) {
         if (num % factor == 0) {
            isCoprime = false;
            break;
         }
      }
      if (isCoprime)
         count++;
   }

   return count;
}

int main() {
   int L = 1; // Set the starting range value
   int R = 100; // Set the ending range value
   int P = 7; // Set the value of P

   int result = countCoprimes(L, R, P);

   std::cout << "Count of numbers between " << L << " and " << R << " coprime with " << P << ": " << result << std::endl;

   return 0;
}
Copier après la connexion

Sortie

Count of numbers between 1 and 100 coprime with 7: 86
Copier après la connexion
Copier après la connexion
La traduction chinoise de

Explication

est :

Explication

La fonction countCoprimes accepte trois paramètres : L (valeur de plage de départ), R (valeur de plage de fin) et P (valeur de P).

Nous créons un ensemble non ordonné de facteurs pour stocker les facteurs premiers de P. Nous initialisons une variable temporaire tempP à P.

Nous itérons de 2 à la racine carrée de tempP. Si tempP est divisible par i, nous ajoutons i à l'ensemble des facteurs et divisons tempP par i jusqu'à ce que tempP ne soit plus divisible par i.

Si tempP est supérieur à 1 après la boucle ci-dessus, cela signifie qu'il s'agit lui-même d'un nombre premier et qu'il doit être ajouté au facteur.

Nous initialisons la variable count à 0, qui stockera le nombre de nombres premiers entre eux.

Nous parcourons chaque nombre numérique de L à R et vérifions s'il est divisible par un facteur dans les facteurs définis. Si nous le pouvons, nous le qualifions de non-coprime.

Après avoir terminé l'itération de tous les nombres, le décompte résultant sera renvoyé comme valeur finale. Quant à la fonction main, elle initialise L, R et P avec les valeurs spécifiées.

Nous appelons ensuite la fonction countCoprimes avec la valeur fournie et stockons le résultat dans la variable result.

Enfin, nous affichons le résultat, qui est le nombre de nombres entre L et R qui sont premiers par rapport à P.

Conclusion

Calculer des nombres premiers entre eux dans une plage spécifiée L-R et satisfaire une valeur spécifique P est un bon défi pour les programmeurs - mais au niveau du code, quelle est la meilleure approche ? Dans le cadre de cet article, nous examinons en profondeur deux cas d’utilisation du C++ qui offrent une réelle efficacité lors de la résolution de problèmes comme celui-ci. Premièrement, en parcourant toutes les valeurs dans l'intervalle cible et en utilisant l'algorithme euclidien pour vérifier si les nombres correspondent en tant que nombres premiers entre eux, et également en utilisant la méthode de la fonction Euler, qui utilise une stratégie d'optimisation ; Quelle que soit la méthode que vous utilisez, la possibilité d'en tirer le meilleur parti dépend en grande partie de facteurs contextuels, tels que les nombres que vous choisissez et les intervalles que vous spécifiez, mais choisir judicieusement entre les deux méthodes possibles peut vraiment accélérer les choses dans l'ensemble. vitesse du programme. Pour les codeurs qui cherchent à ajouter des connaissances techniques à leurs compétences techniques et à leurs capacités créatives de résolution de problèmes, maîtriser le comptage de nombres premiers avec C++ grâce à ces méthodes peut être exactement ce dont ils ont besoin.

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La multiplication matricielle universelle de CUDA : de l'entrée à la maîtrise ! La multiplication matricielle universelle de CUDA : de l'entrée à la maîtrise ! Mar 25, 2024 pm 12:30 PM

La multiplication matricielle générale (GEMM) est un élément essentiel de nombreuses applications et algorithmes, et constitue également l'un des indicateurs importants pour évaluer les performances du matériel informatique. Une recherche approfondie et l'optimisation de la mise en œuvre de GEMM peuvent nous aider à mieux comprendre le calcul haute performance et la relation entre les systèmes logiciels et matériels. En informatique, une optimisation efficace de GEMM peut augmenter la vitesse de calcul et économiser des ressources, ce qui est crucial pour améliorer les performances globales d’un système informatique. Une compréhension approfondie du principe de fonctionnement et de la méthode d'optimisation de GEMM nous aidera à mieux utiliser le potentiel du matériel informatique moderne et à fournir des solutions plus efficaces pour diverses tâches informatiques complexes. En optimisant les performances de GEMM

Comment calculer l'addition, la soustraction, la multiplication et la division dans un document Word Comment calculer l'addition, la soustraction, la multiplication et la division dans un document Word Mar 19, 2024 pm 08:13 PM

WORD est un traitement de texte puissant. Nous pouvons utiliser Word pour éditer divers textes. Dans les tableaux Excel, nous maîtrisons les méthodes de calcul d'addition, de soustraction et de multiplicateurs. Ainsi, si nous avons besoin de calculer l'addition de valeurs numériques dans les tableaux Word, Comment soustraire le multiplicateur ? Puis-je utiliser uniquement une calculatrice pour le calculer ? La réponse est bien sûr non, WORD peut aussi le faire. Aujourd'hui, je vais vous apprendre à utiliser des formules pour calculer des opérations de base telles que l'addition, la soustraction, la multiplication et la division dans des tableaux dans des documents Word. Apprenons ensemble. Alors, aujourd'hui, permettez-moi de vous montrer en détail comment calculer l'addition, la soustraction, la multiplication et la division dans un document WORD ? Étape 1 : ouvrez un WORD, cliquez sur [Tableau] sous [Insérer] dans la barre d'outils et insérez un tableau dans le menu déroulant.

Comment compter le nombre d'éléments dans une liste à l'aide de la fonction count() de Python Comment compter le nombre d'éléments dans une liste à l'aide de la fonction count() de Python Nov 18, 2023 pm 02:53 PM

Comment utiliser la fonction count() de Python pour compter le nombre d'éléments dans une liste nécessite des exemples de code spécifiques. En tant que langage de programmation puissant et facile à apprendre, Python fournit de nombreuses fonctions intégrées pour gérer différentes structures de données. L'une d'elles est la fonction count(), qui peut être utilisée pour compter le nombre d'éléments dans une liste. Dans cet article, nous expliquerons en détail comment utiliser la fonction count() et fournirons des exemples de code spécifiques. La fonction count() est une fonction intégrée de Python, utilisée pour calculer un certain

Compter le nombre d'occurrences d'une sous-chaîne de manière récursive en Java Compter le nombre d'occurrences d'une sous-chaîne de manière récursive en Java Sep 17, 2023 pm 07:49 PM

Étant donné deux chaînes str_1 et str_2. Le but est de compter le nombre d'occurrences de la sous-chaîne str2 dans la chaîne str1 en utilisant une procédure récursive. Une fonction récursive est une fonction qui s'appelle dans sa définition. Si str1 est "Je sais que vous savez que je sais" et str2 est "savoir", le nombre d'occurrences est de -3 Comprenons à travers des exemples. Par exemple, entrez str1="TPisTPareTPamTP", str2="TP" ; sortie Countofoccurrencesofasubstringrecursi.

Comment utiliser la fonction Math.Pow en C# pour calculer la puissance d'un nombre spécifié Comment utiliser la fonction Math.Pow en C# pour calculer la puissance d'un nombre spécifié Nov 18, 2023 am 11:32 AM

En C#, il existe une bibliothèque de classes Math, qui contient de nombreuses fonctions mathématiques. Il s'agit notamment de la fonction Math.Pow, qui calcule les puissances, ce qui peut nous aider à calculer la puissance d'un nombre spécifié. L'utilisation de la fonction Math.Pow est très simple, il suffit de spécifier la base et l'exposant. La syntaxe est la suivante : Math.Pow(base,exponent) ; où base représente la base et exponent représente l'exposant. Cette fonction renvoie un résultat de type double, c'est-à-dire le résultat du calcul de puissance. Allons

Programme Java pour calculer l'aire d'un triangle à l'aide de déterminants Programme Java pour calculer l'aire d'un triangle à l'aide de déterminants Aug 31, 2023 am 10:17 AM

Introduction Le programme Java pour calculer l'aire d'un triangle à l'aide d'un déterminant est un programme concis et efficace qui peut calculer l'aire d'un triangle à partir des coordonnées de trois sommets. Ce programme est utile à toute personne qui apprend ou travaille avec la géométrie, car il montre comment utiliser les calculs arithmétiques et algébriques de base en Java, ainsi que comment utiliser la classe Scanner pour lire les entrées de l'utilisateur. Le programme demande à l'utilisateur les coordonnées de trois points du triangle, qui sont ensuite lues et utilisées pour calculer le déterminant de la matrice de coordonnées. Utilisez la valeur absolue du déterminant pour vous assurer que l'aire est toujours positive, puis utilisez une formule pour calculer l'aire du triangle et l'afficher à l'utilisateur. Le programme peut être facilement modifié pour accepter des entrées dans différents formats ou pour effectuer des calculs supplémentaires, ce qui en fait un outil polyvalent pour les calculs géométriques. rangs de déterminants

Exemple de programme Java pour calculer le score total et le pourcentage Exemple de programme Java pour calculer le score total et le pourcentage Sep 11, 2023 pm 06:01 PM

Nous montrerons comment calculer les scores totaux et les pourcentages à l'aide d'un programme Java. Le score total fait référence à la somme de tous les scores disponibles, tandis que le terme pourcentage fait référence au score calculé divisé par le score total et multiplié par le nombre obtenu 100. percent_of_marks=(obtained_marks/total_marks)×100 Exemple 1 Il s'agit d'un programme Java qui montre comment calculer les scores totaux et les pourcentages. //Programme Java pour démontrer comment les marques totales et les pourcentages sont calculés importjava.io.*;publicclassTotalMarks_

Conseils de traitement des dates PHP : Comment calculer la différence mensuelle entre les dates en utilisant PHP ? Conseils de traitement des dates PHP : Comment calculer la différence mensuelle entre les dates en utilisant PHP ? Mar 20, 2024 am 11:24 AM

Conseils de traitement des dates PHP : Comment calculer la différence mensuelle entre les dates en utilisant PHP ? Le traitement des dates est une exigence très courante dans le développement Web, en particulier dans la logique métier qui doit être liée au temps. En PHP, le calcul de la différence mensuelle entre les dates peut être réalisé grâce à certaines méthodes. Cet article explique comment utiliser PHP pour calculer la différence mensuelle entre deux dates et fournit des exemples de code spécifiques. Méthode 1 : utilisez la classe DateTime. La classe DateTime de PHP fournit une multitude de méthodes de traitement des dates, notamment le calcul des dates.

See all articles