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

एक सरणी के तत्व जो सी ++ में किसी अन्य सरणी के किसी भी तत्व से विभाज्य नहीं हैं

इस समस्या में, हमें दो सरणियाँ arr1[] और arr2[] दी गई हैं। हमारा कार्य किसी सरणी के तत्वों को खोजने के लिए एक प्रोग्राम बनाना है जो किसी अन्य सरणी के किसी भी तत्व से विभाज्य नहीं हैं।

समस्या का विवरण: यहां, हमें arr1 से सभी तत्वों को खोजने की आवश्यकता है जो arr2 के किसी भी तत्व से विभाज्य नहीं हैं।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट: arr1[] ={17, 15, 5, 12, 8} arr2[] ={5, 4}

आउटपुट: 17

स्पष्टीकरण -

arr1 के तत्व और उन्हें विभाजित करने वाले तत्व,

17 -> कोई भी तत्व इसे विभाजित नहीं कर सकता।
15 -> 5 तत्व को विभाजित करता है।
5 -> 5 तत्व को विभाजित करता है।

12 -> 4 तत्व को विभाजित करता है।

8 -> 4 तत्व को विभाजित करता है।

समाधान दृष्टिकोण -

प्रत्यक्ष विधि का उपयोग करके समस्या को हल करने का एक सरल और सरल तरीका है। हम arr1 के माध्यम से लूप करेंगे और arr1 के प्रत्येक तत्व के लिए, हम जांच करेंगे कि arr2 का कोई तत्व तत्व को विभाजित करता है या नहीं। यदि कोई तत्व इसे विभाजित नहीं करता है, तो तत्व को प्रिंट करें।

एल्गोरिदम -

चरण 1: arr1, i -> 0 से n-1 के लिए लूप।

चरण 2.1: प्रत्येक arr1[i], लूप arr2, j -> 0 से n-1 के लिए।

चरण 2.2.1 : अगर arr1[i]% arr2[j] ==0, फ्लैग जारी रखें =-1।

चरण 2.3: अगर झंडा !=-1, arr1[i] प्रिंट करें।

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम,

उदाहरण

#include<iostream>
using namespace std;

void findEleNotDivisbleByArray(int arr1[], int arr2[], int arr1Size, int arr2Size) {
   
   int flag = 0;
   for (int i = 0; i < arr1Size; i++) {
      flag = 0;
      for (int j = 0; j < arr2Size; j++){
         
         if( arr1[i] % arr2[j] == 0 ) {
            flag = -1;   
            break;
         }
      }
      if ( flag == 0 )
            cout<<arr1[i]<<"\t";
   }
}

int main()
{
   int arr1[] = {17, 15, 5, 12, 23, 8};
   int arr2[] = {5, 4};
   int arr1Size = sizeof(arr1)/sizeof(arr1[0]);
   int arr2Size = sizeof(arr2)/sizeof(arr2[0]);
   cout<<"Elements of an array that are not divisible by any element of another array are ";
   findEleNotDivisbleByArray(arr1, arr2, arr1Size, arr2Size);
   return 0;
}

आउटपुट -

Elements of an array that are not divisible by any element of another array are 17 23
. हैं

यह समाधान मान्य है लेकिन कुशल नहीं है। तो, आइए देखते हैं समस्या का कारगर समाधान,

इस पद्धति में, हम arr1 के तत्वों की एक सरणी isDivisible[] बनाएंगे। arr2 के सभी तत्वों के लिए, उनके सभी गुणकों को arr1 के सबसे बड़े तत्व तक चिह्नित करें। और उन सभी तत्वों को प्रिंट करें जिन्हें isDisible सरणी में गलत चिह्नित किया गया है।

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम,

उदाहरण

#include<iostream>
using namespace std;

void findEleNotDivisbleByArray(int arr1[], int arr2[], int arr1Size, int arr2Size) {
   
   int maxEle = 0;
   for (int i = 0; i < arr1Size; i++)
      if (arr1[i] > maxEle)
         maxEle = arr1[i];

   int mark[maxEle];
   for (int i = 0; i < arr2Size; i++)
      for (int j = arr2[i]; j <= maxEle; j += arr2[i])
         mark[j] = 1;
   for (int i = 0; i < arr1Size; i++)
      if ( mark[arr1[i]] != 1)
         cout << arr1[i] << endl;
}

int main()
{
   int arr1[] = {17, 15, 5, 12, 8};
   int arr2[] = {5, 4};
   int arr1Size = sizeof(arr1)/sizeof(arr1[0]);
   int arr2Size = sizeof(arr2)/sizeof(arr2[0]);
   cout<<"Elements of an array that are not divisible by any element of another array are ";
   findEleNotDivisbleByArray(arr1, arr2, arr1Size, arr2Size);
   return 0;
}

आउटपुट -

Elements of an array that are not divisible by any element of another array are 17

  1. सर्कुलर सरणी में अधिकतम योग जैसे कि कोई भी दो तत्व सी ++ में आसन्न नहीं हैं

    इस समस्या में, हमें एक वृत्ताकार सरणी cirArr[] दी गई है। हमारा काम सर्कुलर सरणी में अधिकतम योग खोजने के लिए एक प्रोग्राम बनाना है जैसे कि कोई भी दो तत्व सी ++ में आसन्न नहीं हैं। समस्या का विवरण वृत्ताकार सरणी के लिए, हमें सरणी के तत्वों का अधिकतम योग ज्ञात करना होगा जैसे कि आसन्न तत्वों को नहीं लि

  1. उन तत्वों को खोजें जो पहली सरणी में मौजूद हैं और दूसरे में C++ में नहीं हैं

    मान लीजिए कि हमारे पास दो एरे ए और बी हैं। कुछ तत्व हैं। हमें उन तत्वों को खोजना है जो समुच्चय ए में मौजूद हैं, लेकिन सेट बी में नहीं हैं। अगर हम उस स्थिति को सोचते हैं, और ए और बी को सेट मानते हैं, तो यह मूल रूप से सेट डिवीजन ऑपरेशन है। ए और बी के बीच सेट अंतर उन तत्वों को वापस कर देगा। उदाहरण #inc

  1. एक सरणी तत्व खोजें जैसे कि सभी तत्व इसके द्वारा c++ . का उपयोग करके विभाज्य हैं

    विचार करें कि हमारे पास कुछ तत्वों के साथ एक सरणी ए है। हमें A से एक अवयव इस प्रकार ज्ञात करना है कि सभी तत्वों को इससे विभाजित किया जा सके। मान लीजिए कि ए [15, 21, 69, 33, 3, 72, 81] जैसा है, तो तत्व 3 होगा, क्योंकि सभी संख्याएं 3 से विभाज्य हो सकती हैं। इस समस्या को हल करने के लिए, हम ए में सबसे