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

C++ में एक पूर्णांक X खोजें जो सरणी में ठीक एक तत्व को छोड़कर सभी का भाजक हो


अवधारणा

एक दी गई पूर्णांकों की सरणी के संबंध में, हमारा कार्य एक पूर्णांक B निर्धारित करना है जो दिए गए सरणी में ठीक एक तत्व को छोड़कर सभी का भाजक है।

यह ध्यान दिया जाना चाहिए कि सभी तत्वों का GCD 1 नहीं है।

इनपुट 

arr[] = {8, 16, 4, 24}

आउटपुट 

8 8, 4 को छोड़कर सभी का भाजक है।

इनपुट  

arr[] = {50, 15, 40, 41}

आउटपुट  

5 5, 41 को छोड़कर सभी का भाजक है।

विधि

हम एक प्रीफिक्स सरणी A बनाते हैं जैसे कि स्थिति या इंडेक्स i में 1 से i तक के सभी तत्वों का GCD होता है। इसी तरह, एक सफ़िक्स सरणी C बनाएं जैसे कि इंडेक्स i में i से n-1 (अंतिम इंडेक्स) तक के सभी तत्वों का GCD होता है। यह देखा गया है कि यदि A[i-1] और C[i+1] का GCD इंडेक्स i पर तत्व का भाजक नहीं है, तो वह आवश्यक उत्तर है।

उदाहरण

<प्रि क्लास="प्रिटीप्रिंट नोट्रांसलेट" शैली="">// C++ program to find the divisor of all // except for exactly one element in an array. #include <bits/stdc++.h> using namespace std; // फ़ंक्शन जो सरणी में ठीक एक तत्व को छोड़कर // सभी के भाजक को लौटाता है। int getDivisor1(int a1[], int n1){    // यदि सरणी में केवल एक तत्व है    if (n1 == 1)       return (a1[0] + 1);    int A[n1], C[n1];    // अब GCD की प्रीफिक्स सरणी बनाएं    A[0] = a1[0];    for (int i = 1; i < n1; i++)       A[i] = __gcd(a1[i], A[i - 1]);    // अब GCD की सफ़िक्स सरणी बनाएं    C[n1-1] = a1[n1-1];    for (int i = n1 - 2; i >= 0; i--)       C[i] = __gcd(A[i + 1], a1[i]);    // सरणी के माध्यम से पुनरावृति करने के लिए उपयोग किया जाता है    for (int i = 0; i <= n1; i++) {       // भाजक संग्रहीत करने के लिए वेरिएबल दिखाता है    int cur1;    // अब भाजक प्राप्त करना    if (i == 0)       cur1 = C[i + 1];    else if (i == n1 - 1)       cur1 = A[i - 1];    else       cur1 = __gcd(A[i - 1], C[i + 1]);    // जांचने के लिए उपयोग किया जाता है कि यह a[i] का भाजक नहीं है    if (a1[i] % cur1 != 0)       return cur1;    }    return 0; } // ड्राइवर कोड int main(){    int a1[] = { 50,15,40,41 };    int n1 = sizeof(a1) / sizeof(a1[0]);    cout << getDivisor1(a1, n1);    return 0; }

आउटपुट

5

  1. - C++ में इंटीजर का वन्स कॉम्प्लीमेंट खोजें

    इस सेक्शन में, हम देखेंगे कि इंटीजर का 1s कॉम्प्लीमेंट कैसे खोजें। हम कॉम्प्लीमेंट ऑपरेटर का उपयोग करके यह कार्य बहुत तेजी से कर सकते हैं, लेकिन यह 32-बिट कॉम्प्लीमेंटेड वैल्यू बनाएगा (4-बाइट इंटीजर)। यहां हम n-बिट नंबर्स का कॉम्प्लीमेंट चाहते हैं।मान लीजिए हमारे पास एक नंबर है जैसे 22। इसका बाइनरी

  1. - C++ में सरणी का सबसे बड़ा एलिमेंट खोजने का प्रोग्राम

    एक सरणी में कई एलिमेंट्स होते हैं और सरणी में सबसे बड़ा एलिमेंट वह होता है जो अन्य एलिमेंट्स से बड़ा होता है। उदाहरण के लिए। 5 1 7 2 4 उपरोक्त सरणी में, 7 सबसे बड़ा एलिमेंट है और यह इंडेक्स 2 पर है। सरणी का सबसे बड़ा एलिमेंट खोजने का एक प्रोग्राम निम्नलिखित है। उदाहरण #include <iostream>

  1. - पायथन में सरणी में एक को छोड़कर सभी का भाजक ढूंढना

    समस्या विवरण संख्याओं की एक सरणी दी गई है, एक संख्या B ढूंढें जो सरणी के सभी तत्वों का भाजक हो सिवाय ठीक एक तत्व के। ध्यान रखें कि सभी तत्वों का GCD 1 नहीं है। उदाहरण इनपुट: [8, 16, 4, 24] आउटपुट: 8 (8, 16, 24 का भाजक है, 4 का नहीं) एल्गोरिदम (प्रीफिक्स/सफिक्स GCD) n = len(array); यदि 1 तो array[