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

एक सरणी में जोड़े की गणना करें जैसे कि सी ++ में कम से कम एक तत्व प्रमुख है

हमें सकारात्मक पूर्णांकों की एक सरणी दी गई है। लक्ष्य एक सरणी के तत्वों के अलग-अलग जोड़े की गिनती का पता लगाना है जिसमें कम से कम एक प्रमुख सदस्य हो। यदि सरणी [1,2,3,4] है तो जोड़े (1,2), (1,3), (2,3), (2,4) और (3,4) होंगे।

आइए उदाहरणों के साथ समझते हैं

इनपुट - एआर [] ={ 1,2,4,8,10};

आउटपुट − एक सरणी में जोड़े की संख्या जैसे कि कम से कम एक तत्व अभाज्य है − 4

स्पष्टीकरण - एकमात्र अभाज्य तत्व 2 है और इसे अन्य सभी के साथ जोड़ने पर - (1,2), (2,4), (2,8), (2,10) मिलेगा।

इनपुट - गिरफ्तार [] ={ 0,1,4,6,15 };

आउटपुट - एक सरणी में जोड़े की संख्या जैसे कि कम से कम एक तत्व अभाज्य है - 0

स्पष्टीकरण − सरणी में कोई अभाज्य तत्व नहीं है।

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

हम primes और non-prime को चिह्नित करने के लिए arr_2[] एक सरणी बनाएंगे। अगर arr_2[i] 0 है तो मैं अभाज्य है अन्यथा गैर-अभाज्य। यदि किसी युग्म के लिए कोई मान arr_2[A], arr_2[B] 0 है तो युग्म (A,B) की गणना की जाती है।

  • धनात्मक पूर्णांकों की एक सरणी arr[] लें।

  • फ़ंक्शन check_prime(int temp, int arr_2[] एक मान temp को उच्चतम और एक सरणी arr_2[] लेता है और arr_2[] को इंडेक्स के लिए 0 के साथ प्राइम 1 के रूप में पॉप्युलेट करता है।

  • arr_2[0]=arr_2[1]=0 सेट करें क्योंकि 0 और 1 दोनों गैर-प्राइम हैं।

  • अब लूप के लिए उपयोग करते हुए, i=2 से i*i . तक ट्रैवर्स करें

  • j=2*i से j<=temp और j+=i पर जाएं। गैर अभाज्य संख्याओं के लिए arr_2[j]=1 सेट करें।

  • फ़ंक्शन Prime_Pairs(int arr[], int size) एक सरणी और उसका आकार लेता है और ऐसे जोड़े की गिनती देता है जिनमें कम से कम एक तत्व प्रमुख है।

  • प्रारंभिक गणना 0 के रूप में लें।

  • सरणी के बीच अधिकतम मान के रूप में temp=*max_element(arr, arr + size) प्रारंभ करें।

  • कॉल check_prime(temp,arr_2). जहां arr_2[] को 0 के साथ प्रारंभ किया गया है और इसकी लंबाई अस्थायी है।

  • अब हमारे पास arr_2[] होगा जहां arr[i] i के लिए अभाज्य के रूप में 0 और गैर-अभाज्य के रूप में i के लिए 1 है।

  • i=0 से i<आकार और j=0 से j<आकार तक दो for लूप का उपयोग करते हुए ट्रैवर्स सरणी।

  • प्रत्येक जोड़ी arr[i], arr[j] के लिए जाँच करें कि क्या arr_2[arr[i] ] ==0 या arr_2[arr[j] ] ==0. यदि हाँ तो वेतन वृद्धि की गणना करें।

  • परिणाम के रूप में सभी लूपों के अंत में वापसी की गणना करें।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
void check_prime(int temp, int arr_2[]){
   arr_2[0] = 1;
   arr_2[1] = 1;
   for(int i = 2; i * i <= temp; i++){
      if (arr_2[i]==0){
         for (int j = 2 * i; j <= temp; j += i){
            arr_2[j] = 1;
         }
      }
   }
}
int Prime_Pairs(int arr[], int size){
   int count = 0;
   int temp = *max_element(arr, arr + size);
   int arr_2[temp + 1];
   memset(arr_2, 0, sizeof(arr_2));
   check_prime(temp, arr_2);
   for (int i = 0; i < size; i++){
      for (int j = i + 1; j < size; j++){
         if (arr_2[arr[i]] == 0 || arr_2[arr[j]] == 0){
            count++;
         }
      }
   }
   return count;
}
int main(){
   int arr[] = { 3, 5, 2, 7, 11, 14 };
   int size = sizeof(arr) / sizeof(arr[0]);
   cout<<"Count of pairs in an array such that at least one element is prime are: "<<Prime_Pairs(arr, size);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Count of pairs in an array such that at least one element is prime are: 15

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

    मान लीजिए कि हमारे पास एक सरणी ए है, इसमें एन तत्व हैं। हमारा कार्य सरणी A को दो उप-सरणी में विभाजित करना है, ताकि प्रत्येक उप-सरणी का योग समान हो। मान लीजिए कि सरणी A =[2, 3, 4, 1, 4, 5], आउटपुट 1 है, इसलिए 1 से पहले और 1 के बाद के उप-सरणी लिए जाते हैं। [2, 3, 4], और [4, 5]। इस समस्या को हल करने क

  1. एक सरणी में सभी जोड़े (ए, बी) खोजें जैसे कि सी ++ में% बी =के

    मान लीजिए कि हमारे पास एक सरणी ए है, उस सरणी से, हमें सभी जोड़े (ए, बी) प्राप्त करना है जैसे कि ए% बी =के। मान लीजिए कि सरणी A =[2, 3, 4, 5, 7] और k =3 है, तो जोड़े (7, 4), (3, 4), (3, 5), (3, 7) हैं। इसे हल करने के लिए, हम सूची को देखेंगे और जांचेंगे कि दी गई शर्त संतोषजनक है या नहीं। उदाहरण #inc

  1. सी ++ में सरणी में प्रत्येक तत्व की सर्पासर गणना खोजें

    मान लीजिए कि एक सरणी A दिया गया है। हमें उस सरणी में प्रत्येक तत्व की संख्या को पार करना होगा। पार करने वाले अधिक से अधिक तत्व होते हैं जो वर्तमान तत्व की सरणी के दाईं ओर मौजूद होते हैं। मान लीजिए A ={2, 7, 5, 3, 0, 8, 1}, श्रेष्ठ हैं {4, 1, 1, 2, 0, 0}, तो 2 में दायीं ओर 4 संख्याएँ हैं, जो बड़ी हैं