Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ में उत्पाद के बराबर एलसीएम के साथ अधिकतम लंबाई उपसरणी

मान लीजिए कि हमारे पास एक सरणी A है। हमें उप-सरणी की अधिकतम लंबाई ज्ञात करनी है, जिसका LCM उस उप-सरणी के तत्वों के गुणनफल के समान है। यदि उस प्रकार का उप-सरणी नहीं मिलता है, तो -1 लौटाएं। मान लीजिए सरणी {6, 10, 21} है, तो लंबाई 2 है, क्योंकि उप-सरणी {10, 21} है, जिसका एलसीएम 210 है, और उत्पाद भी 210 है।

दृष्टिकोण सीधे आगे है। हमें 2 से अधिक या बराबर लंबाई के हर संभव उप-सरणी की जांच करनी होगी। यदि उप-सरणी शर्त को संतुष्ट कर रही है, तो उत्तर को अधिकतम उत्तर और उप-सरणी की लंबाई के रूप में अपडेट करें।

उदाहरण

#include <iostream>
using namespace std;
int gcd(int a, int b) {
   if (b == 0)
      return a;
   return gcd(b, a % b);
}
int maxLengthLCMSubarray(int arr[], int n) {
   int len = -1;
   for (int i = 0; i < n - 1; i++) {
      for (int j = i + 1; j < n; j++) {
         long long lcm = 1LL * arr[i];
         long long product = 1LL * arr[i];
         for (int k = i + 1; k <= j; k++) {
            lcm = (((arr[k] * lcm)) / (gcd(arr[k], lcm)));
            product = product * arr[k];
         }
         if (lcm == product) {
            len = max(len, j - i + 1);
         }
      }
   }
   return len;
}
int main() {
   int arr[] = {8, 2, 6, 10, 13, 21, 7};
   int n = sizeof(arr) / sizeof(arr[0]);
   cout << "Maximum Length: " << maxLengthLCMSubarray(arr, n);
}

आउटपुट

Maximum Length: 3

  1. सी ++ में बदसूरत संख्याओं के साथ उप-सरणी की अधिकतम लंबाई

    समस्या कथन एन तत्वों की एक सरणी गिरफ्तारी [] को देखते हुए (0 ≤ गिरफ्तारी [i] 1000)। कार्य उप-सरणी की अधिकतम लंबाई को खोजना है जिसमें केवल बदसूरत संख्याएं हैं। बदसूरत संख्याएँ वे संख्याएँ होती हैं जिनके केवल अभाज्य गुणनखंड 2, 3 या 5 होते हैं। उदाहरण के लिए नीचे श्रृंखला से कुछ संख्याएँ हैं:1, 2, 3

  1. अधिकतम उत्पाद के साथ एन के चार कारक खोजें और सी ++ में एन के बराबर योग करें

    मान लीजिए कि हमारे पास एक पूर्णांक N है। कार्य N के सभी कारकों को खोजना और N के चार कारकों के उत्पाद को प्रदर्शित करना है, जैसे कि - उनके चार कारकों का योग N के बराबर है चार कारकों का गुणनफल अधिकतम है मान लीजिए कि संख्या 24 है, तो गुणनफल 1296 है। जैसा कि हम जानते हैं कि सभी गुणनखंड 1, 2, 3,

  1. C++ में जोड़े की अधिकतम लंबाई श्रृंखला

    जोड़े की एक श्रृंखला दी गई है। प्रत्येक जोड़ी में दो पूर्णांक होते हैं और पहला पूर्णांक हमेशा छोटा होता है, और दूसरा बड़ा होता है, वही नियम श्रृंखला निर्माण के लिए भी लागू किया जा सकता है। एक जोड़ी (x, y) को एक जोड़ी (p, q) के बाद जोड़ा जा सकता है, केवल अगर q