Table des matières
Énoncé du problème
Exemple
Méthode
Trouver le nombre de facteurs d'un nombre
Brute Force
Sortie
Méthode efficace
Exemple de programme C++ pour imprimer des vecteurs triés en fonction du nombre de facteurs
Conclusion
Maison développement back-end C++ Trier par nombre de facteurs à l'aide de STL

Trier par nombre de facteurs à l'aide de STL

Sep 07, 2023 am 10:09 AM
排序 stl facteur

Trier par nombre de facteurs à laide de STL

Le tri des vecteurs à l'aide de STL est un jeu d'enfant. Nous pouvons utiliser la célèbre fonction sort() pour accomplir cette tâche. Le véritable défi consiste à compter le nombre de facteurs pour chaque nombre.

Un facteur est un nombre qui divise complètement un autre nombre, c'est-à-dire avec un reste nul.

Parcourir tous les nombres pour calculer les facteurs pourrait être une voie à suivre, mais nous essaierons d'optimiser et d'arriver à une solution efficace dans cet article.

Énoncé du problème

Triez le tableau donné par ordre croissant en fonction du nombre de facteurs de chaque nombre. Par conséquent, le nombre avec le plus petit nombre de facteurs doit être au début et celui avec le plus grand nombre de facteurs doit être à la fin. Les nombres avec le même nombre de facteurs doivent être disposés dans l’ordre du tableau d’origine. Les tableaux peuvent être triés à l'aide de STL.

La traduction chinoise de

Exemple

est :

Exemple

Input − Array a = [15,2,20,3,10,4]
Output − 3 2 4 10 15 20
pre class="just-code notranslate language-cpp" data-lang="cpp">
The number of factors of 15 − 4.
The number of factors of 2 −  2.
The number of factors of 20 − 6.
The number of factors of 3 −  2.
The number of factors of 10 − 4.
The number of factors of 4 −  3.
Copier après la connexion

Ainsi, après avoir trié les nombres par ordre croissant en fonction de leurs facteurs, nous obtenons le résultat : 3 2 4 10 15 20.

Input − Array a = [5,9,12,19,21]
Output − 19 5 9 21 12
Copier après la connexion

Explication

The number of factors of 5 −  3.
The number of factors of 9 −  3.
The number of factors of 12 − 4.
The number of factors of 19 − 2.
The number of factors of 21 − 4.
Copier après la connexion
Ainsi, après avoir trié les nombres par ordre croissant en fonction de leurs facteurs, nous obtenons le résultat : 19 5 9 21 12

Méthode

  • Trouvez le nombre de facteurs de chaque nombre.

  • Créez un vecteur qui stocke des paires de nombres et leurs nombres de facteurs.

  • Triez le vecteur et renvoyez le résultat.

Trouver le nombre de facteurs d'un nombre

La traduction chinoise de

Brute Force

est :

Brute Force

Une approche naïve serait de parcourir tous les nombres de 1 à n et de découvrir s'ils divisent n. De cette façon, nous pouvons calculer le nombre de facteurs pour chaque nombre.

La traduction chinoise de

Exemple

est :

Exemple

Ce qui suit est un programme C++ qui utilise la force brute pour calculer tous les diviseurs d'un nombre

#include <bits/stdc++.h>
using namespace std;
// function to count the divisors
int countDivisors(int n){
   int count = 0;
	for (int i = 1; i <= n; i++){
	   if (n % i == 0)
		   count++;
	} 
   return count;
}

int main(){
   int n = 55;
   //Function call
   int ans = countDivisors(n);
	cout <<"The number of divisors of 55 is: "<<ans<<endl;
	return 0;
}
Copier après la connexion

Sortie

The number of divisors of 55 is: 4
Copier après la connexion
Copier après la connexion

Méthode efficace

Les facteurs d'un nombre existent par paires.

Par exemple, les diviseurs de 12 sont 1, 2, 3, 4, 6, 12.

Cependant, on peut les visualiser ainsi : (1,12), (2,6), (3,4).

Donc, si nous trouvons un diviseur, nous pouvons également trouver un autre diviseur sans passer par n.

Le moyen efficace consiste donc simplement à parcourir jusqu'à la racine carrée du nombre, puis à calculer les diviseurs par paires.

La traduction chinoise de

Exemple

est :

Exemple

Ce qui suit est un programme C++ pour calculer le diviseur d'un nombre

#include <bits/stdc++.h>
using namespace std;
// Function to count the divisors of a number
int countDivisors(int n){
   int count = 0;
	for (int i=1; i<=sqrt(n); i++){
		if (n%i == 0){
			// If divisors are equal, count only one
			if (n/i == i)
				count++;
			else // Otherwise count both
				count += 2;
		}
	}
	return count;
}

int main(){
   int n = 55;
   int ans = countDivisors(n);
   cout <<"The number of divisors of 55 is: "<<ans<<endl;
   return 0;
}
Copier après la connexion

Sortie

The number of divisors of 55 is: 4
Copier après la connexion
Copier après la connexion

Maintenant, nous pouvons suivre les deuxième et troisième étapes de la méthode évoquée ci-dessus.

Exemple de programme C++ pour imprimer des vecteurs triés en fonction du nombre de facteurs

#include <bits/stdc++.h>
using namespace std;
// Function to count the divisors of a number
int countDivisors(int n){
	int count = 0;
	for (int i=1; i<=sqrt(n); i++){
		if (n%i == 0){
			// If divisors are equal, count only one
			if (n/i == i)
				count++;
			else // Otherwise count both
				count += 2;
		}
	}
	return count;
}
int main(){
   int n = 5;
   vector<int>vec;
   //Inserting input
   vec.push_back(5);
   vec.push_back(14);
   vec.push_back(18);
   vec.push_back(9);
   vec.push_back(10);
   //Vector of pairs to store the number and its factor count
   vector<pair<int,int>>count_data(n);
   for(int i=0;i<n;i++){
      //Storing the data in the vector
      count_data[i] = {countDivisors(vec[i]), vec[i]};
   }
   //Sort the vector according to the number of factors
   sort(count_data.begin(),count_data.end());
   //Printing the result
   cout<<"The sorted vector based on the number of factors is: \n";
   for(int i=0;i<n;i++){
      cout<<count_data[i].second<<" ";
   }
   return 0;
}
Copier après la connexion

Sortie

The sorted vector based on the number of factors is: 
5 9 10 14 18 
Copier après la connexion

Conclusion

Dans cet article, nous avons trié un vecteur en fonction du nombre de facteurs d'entiers.

Nous avons discuté de quelques exemples puis parlé des méthodes.

Le cœur de ce problème est de trouver le nombre de diviseurs d'un nombre. Il existe deux manières de résoudre ce problème : la méthode par force brute et la méthode efficace. Nous avons examiné les deux approches, puis avons utilisé l'approche efficace pour rédiger le programme final.

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)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

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)

Comment trier les photos par date prise sous Windows 11/10 Comment trier les photos par date prise sous Windows 11/10 Feb 19, 2024 pm 08:45 PM

Cet article explique comment trier les images en fonction de la date de prise de vue dans Windows 11/10 et explique également ce qu'il faut faire si Windows ne trie pas les images par date. Dans les systèmes Windows, organiser correctement les photos est crucial pour faciliter la recherche des fichiers image. Les utilisateurs peuvent gérer des dossiers contenant des photos en fonction de différentes méthodes de tri telles que la date, la taille et le nom. De plus, vous pouvez définir l'ordre croissant ou décroissant selon vos besoins pour organiser les fichiers de manière plus flexible. Comment trier les photos par date de prise sous Windows 11/10 Pour trier les photos par date de prise sous Windows, procédez comme suit : Ouvrez Images, Bureau ou tout dossier dans lequel vous placez des photos. Dans le menu du ruban, cliquez sur

Comment trier les e-mails par expéditeur, sujet, date, catégorie, taille dans Outlook Comment trier les e-mails par expéditeur, sujet, date, catégorie, taille dans Outlook Feb 19, 2024 am 10:48 AM

Outlook propose de nombreux paramètres et fonctionnalités pour vous aider à gérer votre travail plus efficacement. L’une d’elles est l’option de tri qui vous permet de classer vos emails en fonction de vos besoins. Dans ce didacticiel, nous allons apprendre à utiliser la fonction de tri d'Outlook pour organiser les e-mails en fonction de critères tels que l'expéditeur, l'objet, la date, la catégorie ou la taille. Cela vous permettra de traiter et de trouver plus facilement des informations importantes, ce qui vous rendra plus productif. Microsoft Outlook est une application puissante qui facilite la gestion centralisée de vos plannings de messagerie et de calendrier. Vous pouvez facilement envoyer, recevoir et organiser des e-mails, tandis que la fonctionnalité de calendrier intégrée facilite le suivi de vos événements et rendez-vous à venir. Comment être dans Outloo

Développement PHP : Comment implémenter les fonctions de tri et de pagination des données des tables Développement PHP : Comment implémenter les fonctions de tri et de pagination des données des tables Sep 20, 2023 am 11:28 AM

Développement PHP : comment implémenter des fonctions de tri et de pagination des données de table Dans le développement Web, le traitement de grandes quantités de données est une tâche courante. Pour les tableaux devant afficher une grande quantité de données, il est généralement nécessaire de mettre en œuvre des fonctions de tri et de pagination des données pour offrir une bonne expérience utilisateur et optimiser les performances du système. Cet article explique comment utiliser PHP pour implémenter les fonctions de tri et de pagination des données de table et donne des exemples de code spécifiques. La fonction de tri implémente la fonction de tri dans le tableau, permettant aux utilisateurs de trier par ordre croissant ou décroissant selon différents champs. Ce qui suit est un formulaire de mise en œuvre

Comment implémenter un comparateur personnalisé en C++ STL ? Comment implémenter un comparateur personnalisé en C++ STL ? Jun 05, 2024 am 11:50 AM

L'implémentation d'un comparateur personnalisé peut être réalisée en créant une classe qui surcharge Operator(), qui accepte deux paramètres et indique le résultat de la comparaison. Par exemple, la classe StringLengthComparator trie les chaînes en comparant leurs longueurs : créez une classe et surchargez Operator(), renvoyant une valeur booléenne indiquant le résultat de la comparaison. Utilisation de comparateurs personnalisés pour le tri dans les algorithmes de conteneurs. Les comparateurs personnalisés nous permettent de trier ou de comparer des données en fonction de critères personnalisés, même si nous devons utiliser des critères de comparaison personnalisés.

Comment trier les scores WPS Comment trier les scores WPS Mar 20, 2024 am 11:28 AM

Dans notre travail, nous utilisons souvent le logiciel wps. Il existe de nombreuses façons de traiter les données dans le logiciel wps, et les fonctions sont également très puissantes. Nous utilisons souvent des fonctions pour trouver des moyennes, des résumés, etc. des méthodes qui peuvent être utilisées pour les données statistiques ont été préparées pour tout le monde dans la bibliothèque du logiciel WPS. Ci-dessous, nous présenterons les étapes à suivre pour trier les scores dans WPS. Après avoir lu ceci, vous pourrez tirer les leçons de cette expérience. 1. Ouvrez d’abord le tableau qui doit être classé. Comme indiqué ci-dessous. 2. Entrez ensuite la formule =rank(B2, B2 : B5, 0) et assurez-vous de saisir 0. Comme indiqué ci-dessous. 3. Après avoir saisi la formule, appuyez sur la touche F4 du clavier de l'ordinateur. Cette étape consiste à changer la référence relative en référence absolue.

Comment trier dans Excel Comment trier dans Excel Mar 05, 2024 pm 04:12 PM

Méthodes de tri dans Excel : 1. Tri sur une seule colonne ; 2. Tri sur plusieurs colonnes ; 3. Tri personnalisé. Introduction détaillée : 1. Le tri sur une seule colonne est la méthode de tri la plus courante. Il trie en fonction d'une colonne sélectionnée ; 2. Le tri sur plusieurs colonnes fait référence au tri des données dans plusieurs colonnes, généralement en fonction d'une certaine colonne en premier. de, trier par une autre colonne ; 3. Tri personnalisé, permettant aux utilisateurs de définir l'ordre de tri en fonction de leurs propres besoins.

Comment la méthode Arrays.sort() en Java trie-t-elle les tableaux par comparateur personnalisé ? Comment la méthode Arrays.sort() en Java trie-t-elle les tableaux par comparateur personnalisé ? Nov 18, 2023 am 11:36 AM

Comment la méthode Arrays.sort() en Java trie-t-elle les tableaux par comparateur personnalisé ? En Java, la méthode Arrays.sort() est une méthode très utile pour trier les tableaux. Par défaut, cette méthode trie par ordre croissant. Mais parfois, nous devons trier le tableau selon nos propres règles définies. À ce stade, vous devez utiliser un comparateur personnalisé (Comparator). Un comparateur personnalisé est une classe qui implémente l'interface Comparator.

Comment réorganiser plusieurs colonnes dans Power Query par glisser-déposer Comment réorganiser plusieurs colonnes dans Power Query par glisser-déposer Mar 14, 2024 am 10:55 AM

Dans cet article, nous allons vous montrer comment réorganiser plusieurs colonnes dans PowerQuery par glisser-déposer. Souvent, lors de l'importation de données provenant de diverses sources, les colonnes peuvent ne pas être dans l'ordre souhaité. La réorganisation des colonnes vous permet non seulement de les organiser dans un ordre logique adapté à vos besoins d'analyse ou de reporting, mais elle améliore également la lisibilité de vos données et accélère les tâches telles que le filtrage, le tri et l'exécution de calculs. Comment réorganiser plusieurs colonnes dans Excel ? Il existe de nombreuses façons de réorganiser les colonnes dans Excel. Vous pouvez simplement sélectionner l'en-tête de colonne et le faire glisser vers l'emplacement souhaité. Cependant, cette approche peut devenir fastidieuse lorsqu’il s’agit de grands tableaux comportant de nombreuses colonnes. Pour réorganiser les colonnes plus efficacement, vous pouvez utiliser l'éditeur de requête amélioré. Améliorer la requête

See all articles