


Le sous-tableau le plus long dont le plus grand diviseur commun est supérieur à 1
Un tableau est une collection de données similaires stockées dans des emplacements de mémoire adjacents de manière contiguë. En définissant la valeur de décalage comme valeur de base spécifique pour la base de données, il est plus facile d'évaluer la position spécifique de chaque élément. La valeur de base de cet index particulier est zéro et la valeur de décalage est la différence entre les deux indices particuliers. Un sous-tableau fait partie d'un tableau spécifique et peut être défini comme un ensemble de variables, étiquetées avec plusieurs valeurs. Le sous-tableau le plus long fait référence à un tableau dans lequel tous les éléments du tableau sont supérieurs à K. La somme du sous-tableau de somme maximale ici est -
Moins de
dans un ensemble de données donné
est égal à l'ensemble de données donné.
Moins de
dans un ensemble de données donné
Pour trouver la longueur du sous-tableau le plus long, il nous suffit de trouver le nombre total de 1 dans le sous-tableau spécifique. REMARQUE : Le nombre doit être supérieur au nombre de zéro. Le plus grand diviseur commun est un phénomène mathématique dans lequel on trouve la plus grande valeur entière pouvant diviser chacun des entiers d'entrée avec un reste nul. La condition ici est que « le plus grand diviseur commun soit supérieur à 1 ». Cela signifie que ce nombre particulier n'a ici qu'au moins un diviseur commun entre les entrées données.
Input (array) : arr[] = {4, 3, 2, 2} Output (after the process with sub-array operation) : 2 If we consider the subarray as {2, 2}, then we will get 2 as GCD. Which is > 1, is of maximum length.
Aujourd'hui, dans cet article, nous allons apprendre à trouver le sous-tableau le plus long dont le plus grand diviseur commun est supérieur à 1 à l'aide de l'environnement de programmation C++.
Algorithme pour trouver le sous-tableau le plus long avec un GCD supérieur à 1
Dans cet algorithme particulier, nous pouvons trouver la plus grande valeur commune du sous-tableau le plus long contenant supérieur à 1.
Première étape : commencez.
Étape 2 - Déclarez les variables du processus.
Étape 3 - Réglez et initialisez-le à la valeur zéro.
Étape 4 - Créez une fonction pour évaluer la longueur maximale de ce sous-tableau.
Étape 5 - Incluez un vecteur comme argument.
Étape 6 - Créez une variable pour obtenir la réponse.
Étape 7 - Réglez et initialisez-le à la valeur zéro.
Étape 8 - Stockez la valeur du sous-tableau le plus long avec GCD > 1 valeur.
Étape 9 - Parcourez la boucle pour trouver le plus grand diviseur commun de chaque sous-tableau.
Étape 10 - Remplacez la réponse par la valeur de longueur du sous-tableau.
Étape 11 - Si le plus grand diviseur commun des sous-tableaux est supérieur à 1, enregistrez la réponse.
Étape 12 - Renvoyez la réponse.
Étape 13 - Sinon, exécutez à nouveau la boucle et itérez.
Étape 14 - Terminez une fois le processus terminé.
Syntaxe pour trouver le sous-tableau le plus long dont le GCD est supérieur à 1
int n; cin >> n; const int MAX_NUM = 100 * 1000; static int dp[MAX_NUM]; for(int i = 0; i < n; ++i){ int x; cin >> x; int cur = 1; vector<int> d; for(int i = 2; i * i <= x; ++i){ if(x % i == 0){ cur = max(cur, dp[i] + 1); cur = max(cur, dp[x / i] + 1); d.push_back(i); d.push_back(x / i); } } if(x > 1){ cur = max(cur, dp[x] + 1); d.push_back(x); } for(int j : d){ dp[j] = cur; } } cout << *max_element(dp, dp + MAX_NUM) << endl;
En suivant l'algorithme ci-dessus, nous avons écrit ici la syntaxe possible pour trouver la valeur GCD avec le sous-tableau le plus long supérieur à 1.
Méthode :
Méthode 1−Programme C++ pour trouver le sous-tableau le plus long dont le plus grand diviseur commun est supérieur à 1 grâce à la méthode naïve.
Méthode 2 - Programme C++ pour trouver le plus grand diviseur commun d'un tableau supérieur à 1.
Programme C++ pour trouver des sous-tableaux avec le diviseur commun le plus long supérieur à 1 en utilisant la méthode naïve
Dans ce code C++, nous adoptons une approche naïve pour trouver la valeur GCD du sous-tableau le plus long supérieur à 1 en générant tous les sous-tableaux possibles du tableau donné.
La traduction chinoise deExemple 1
est :Exemple 1
#include <bits/stdc++.h> using namespace std; void maxSubarrayLen(int arr[], int n) { int maxLen = 0; for (int i = 0; i < n; i++) { int gcd = 0; for (int j = i; j < n; j++) { gcd = __gcd(gcd, arr[j]); if (gcd > 1) maxLen = max(maxLen, j - i + 1); else break; } } cout << maxLen; } int main() { int arr[] = { 410, 16, 7, 180, 222, 10, 33 }; int N = sizeof(arr) / sizeof(int); maxSubarrayLen(arr, N); return 0; }
Sortie
3
Programme C++ pour trouver le plus grand diviseur commun d'un tableau supérieur à 1
Dans ce code C++, nous essayons de calculer le plus grand diviseur commun et il a la capacité de vérifier s'il est supérieur à 1.
Exemple 2
se traduit par :Exemple 2
#include<bits/stdc++.h> using namespace std; int gcd(int a, int b){ if (a == 0) return b; return gcd(b%a, a); } void bestArray(int arr[], int n){ bool even[n] = {false}; int ans = 0; for(int i = 0; i < n; i++){ ans = gcd(ans, arr[i]); if(arr[i] % 2 == 0) even[i] = true; } if(ans > 1) cout << 0 << endl; else { ans = 0; for(int i = 0; i < n-1; i++){ if(!even[i]){ even[i] = true; even[i+1] = true; if(arr[i+1]%2 != 0){ ans+=1; } else ans+=2; } } if(!even[n-1]){ ans+=2; } cout << ans << endl; } } int main(){ int arr[] = {16, 10, 07, 81, 88, 32, 3, 42, 25}; int n = 9; bestArray(arr, n); int arr1[] = {16, 7}; n = 2; bestArray(arr1, n); int arr2[] = {10, 97, 2001}; n = 3; bestArray(arr2, n); }
Sortie
5 2 1
Conclusion
Grâce à cette discussion, nous pouvons découvrir comment trouver le sous-tableau le plus long dont le GCD est supérieur à 1. Espérons que l'algorithme et le code C++ écrits vous montreront clairement comment ce processus fonctionne dans le monde réel.
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Bien que la définition de macros de fonctions puisse simplifier le code et améliorer les performances, elle présente également des inconvénients : insécurité des types, difficultés de débogage, conflits de noms et redondance du code. Après avoir pesé le pour et le contre, il est crucial de prendre des décisions éclairées lors de l’utilisation des macros de fonctions.

Explication détaillée de la méthode de recherche du plus grand diviseur commun en langage C Le plus grand diviseur commun (PGCD, Greatest Common Divisor) est un concept couramment utilisé en mathématiques, qui fait référence au plus grand diviseur parmi plusieurs entiers. En langage C, nous pouvons utiliser de nombreuses méthodes pour trouver le plus grand diviseur commun. Cet article détaillera plusieurs de ces méthodes courantes et fournira des exemples de code spécifiques. Méthode 1 : La division euclidienne est une méthode classique pour trouver le plus grand commun diviseur de deux nombres. Son idée de base est de diviser continuellement les diviseurs et les restes de deux nombres.

Le mécanisme d'appel de fonction en C++ consiste à transmettre des arguments à une fonction et à exécuter son code, en renvoyant le résultat s'il existe. Il existe deux manières de transmettre des paramètres : passer par valeur (les modifications sont effectuées à l'intérieur de la fonction) et passer par référence (les modifications sont reflétées dans l'appelant). Lors du passage de valeur, les modifications de valeur au sein de la fonction n'affectent pas la valeur d'origine (telle que printValue), tandis que les modifications lors du passage de référence affectent la valeur d'origine (telle que printReference).

Nous avons deux tableaux d'entiers, l'un avec les éléments calculés et l'autre avec les points de division nécessaires pour diviser le tableau afin de générer des sous-ensembles, nous devons calculer la somme de chaque sous-ensemble dans chaque division et renvoyer le sous-ensemble maximum. Passons en revue l'exemple Comprendre : - input −intarr[]=intarr[]={9,4,5,6,7}intsplitPoints[]={0,2,3,1} ; sortie−la somme maximale du sous-tableau après chaque division [ 22, 13,9,9] Explication - Ici, nous décomposons le tableau en fonction de ses points de division et obtenons le sous-ensemble maximum après chaque division et après la première division → {9} et {4,5,6,7 }>> La somme maximale des sous-tableaux est de -22 après la deuxième division →{9},{4

Le plus grand diviseur commun peut être trouvé en utilisant l'algorithme euclidien en langage C. Le principe est le suivant : le plus grand commun diviseur de deux entiers a et b est égal au reste de a divisé par b et au plus grand commun diviseur de c et b. Cet algorithme est très efficace et peut résoudre rapidement même lorsqu'il s'agit de grands nombres.

Auteur original : 0xSea.eth Avec une hauteur de bloc de 840 000, Bitcoin marquera le début de sa quatrième réduction de moitié, avec une récompense de bloc réduite de 6,25 BTC à 3,125 BTC. Il s'agit d'un événement majeur auquel l'ensemble du secteur du cryptage est attentif. Au sein de l’écosystème Bitcoin, presque tout le monde prête attention au protocole Runes, qui sera mis en ligne avec une hauteur de bloc de 840 000. Comment le protocole Runes va-t-il changer le paysage de l’écosystème du protocole de couche Bitcoin ? Quel impact cela aura-t-il sur BRC-20, Atomics et d’autres protocoles ? En tant qu'observateur et joueur, à la veille du halving et du lancement des Runes, je voudrais faire le tri dans certaines de mes réflexions récentes sur le marché. Le protocole de jeton à une couche Core Viewpoint 1/Bitcoin formera BRC-20, Atomi

Dans cet article, nous utiliserons C++ pour résoudre le problème de trouver le nombre de sous-tableaux dont les valeurs maximales et minimales sont les mêmes. Voici un exemple du problème −Input:array={2,3,6,6,2,4,4,4}Output:12Explication :{2},{3},{6},{6}, {2 },{4},{4},{4},{6,6},{4,4},{4,4}et{4,4,4}sont les sous-tableaux qui peuvent être formés avec les mêmes éléments maximum et minimum. Entrée : tableau = {3, 3, 1,5,

Titre : Utilisez la programmation en langage C pour implémenter la solution du plus grand diviseur commun. Le plus grand diviseur commun (Greatest Common Divisor, GCD en abrégé) fait référence au plus grand entier positif qui peut diviser deux entiers ou plus en même temps. La recherche du plus grand diviseur commun peut être très utile pour certains algorithmes et la résolution de problèmes. Dans cet article, la fonction de recherche du plus grand diviseur commun sera implémentée via la programmation en langage C, et des exemples de code spécifiques seront fournis. En langage C, vous pouvez utiliser l'algorithme euclidien pour résoudre le maximum
