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

C++ में दिए गए सरणियों से अभाज्य संख्याओं को जोड़कर प्राप्त की जा सकने वाली विशिष्ट राशियों की संख्या

हमें दो सरणियाँ दी गई हैं जिनमें अभाज्य और अभाज्य संख्याएँ हैं। लक्ष्य प्रत्येक सरणी में अभाज्य संख्याओं के जोड़े के अलग-अलग योगों की संख्या ज्ञात करना है।

हम प्रत्येक सरणी से दो अभाज्य संख्याओं की एक जोड़ी बनाकर ऐसा करेंगे, उनका योग लेंगे और उन्हें सेट में जोड़ देंगे योग। अंत में सेट का आकार अभाज्य संख्याओं के अलग-अलग योगों की संख्या है।

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

इनपुट

Arr1[] = { 1,2,3 } Arr2[] = { 2,3,4}

आउटपुट

Distinct Sums of primes :3

स्पष्टीकरण

Prime pairs (2,2), (2,3), (3,2), (3,3).
Unique sums are 4,5,6

इनपुट

Arr1[] = { 1,4,6 } Arr2[] = { 2,3,5 }

आउटपुट

Distinct Sums of primes :0

स्पष्टीकरण

Arr1[] has no prime number. Prime pairs do not exist.

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

  • हमारे पास धनात्मक संख्याओं के लिए Arr1[] और Arr2[] और उनकी लंबाई के रूप में len1 और len2 के लिए दो सरणियाँ हैं।

  • फ़ंक्शन isprime(int num) 1 देता है यदि num अभाज्य है अन्यथा 0 देता है।

  • फ़ंक्शन prime_Sums(int arr1[],int arr2[],int l1,int l2) दोनों सरणियों को लेता है और प्राइम के जोड़े के अलग-अलग योगों की गिनती देता है।

  • अलग-अलग रकम जमा करने के लिए एक सेट योग लें।

  • लूप के लिए दोनों सरणियों के प्रत्येक तत्व को पार करें।

  • जांचें कि क्या isprime(arr1[i]) &&isprime(arr2[j]). अगर सही है, तो योग को tmp=arr1[i]+arr2[j] के रूप में लें।

  • sum.insert(tmp) का उपयोग करके सेट करने के लिए tmp जोड़ें

  • अंत में वापस sum.size() परिणाम के रूप में जो अभाज्य संख्याओं का अलग योग है।

उदाहरण

#include<bits/stdc++.h>
using namespace std;
int isprime(int num){
   if (num <= 1)
      return 0;
   for (int i = 2; i <= num/2; i++)
      if (num % i == 0)
         return 0;
   return 1; //if both failed then num is prime
}
int prime_Sums(int arr1[],int arr2[],int l1,int l2){
   int count=0;
   set sum;
   for (int i = 0; i < l1; i++){
      for(int j=0; j < l2; j++){
         if(isprime(arr1[i]) && isprime(arr2[j])){
            int tmp=arr1[i]+arr2[j];
            sum.insert(tmp);
         }
      }
   }
   return sum.size();
}
int main(){
   int Arr1[] = { 2, 3, 5 };
   int Arr2[] = { 2, 2, 4, 7 };
   int len1=sizeof(Arr1) / sizeof(Arr1[0]);
   int len2=sizeof(Arr2) / sizeof(Arr2[0]);
   cout<<"Distinct Sums of primes :"<<prime_Sums(Arr1,Arr2,len1,len2);
   return 0;
}

आउटपुट

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

Count of ways to spell a number with repeated digits are: 16

  1. C++ में N संख्याओं के दिए गए सरणी से K संख्याओं द्वारा बनाए जा सकने वाले सभी विशिष्ट पूर्णांकों को प्रिंट करें

    इस समस्या में, हमें N पूर्णांकों की एक सरणी और एक संख्या K दी जाती है। हमारा कार्य उन सभी विशिष्ट संख्याओं को प्रिंट करना है जो सरणी से किसी भी K तत्व को जोड़कर बनाई जा सकती हैं। किसी भी संख्या को चुनते समय K बार दोहराया जा सकता है। आइए समस्या को समझने के लिए एक उदाहरण लेते हैं - Input: array = {2,

  1. C++ में दिए गए तीन क्रमबद्ध सरणियों में से तीन निकटतम तत्व खोजें

    मान लीजिए कि हमारे पास ए, बी और सी से तीन क्रमबद्ध सरणियाँ हैं, और क्रमशः ए, बी और सी से तीन तत्व i, j और k हैं जैसे कि max(|A[i] – B[i]|, |B[j] – C [k]|, |C[k] - A[i]|) को छोटा किया जाता है। तो अगर ए =[1, 4, 10], बी =[2, 15, 20], और सी =[10, 12], तो आउटपुट तत्व 10, 15, 10 हैं, ये तीनों ए, बी और सी

  1. C++ में 1 से N तक लगभग अभाज्य संख्याओं की संख्या ज्ञात कीजिए

    मान लीजिए कि हमारे पास एक संख्या N है। हमें 1 से N के बीच लगभग अभाज्य संख्याएँ ज्ञात करनी हैं। एक संख्या लगभग अभाज्य कहलाती है जब उसके ठीक दो अलग-अलग गुणनखंड हों। संख्याओं में कितने भी अभाज्य गुणनखंड हो सकते हैं, लेकिन दो अभाज्य गुणनखंड होने चाहिए। तो अगर N 2 है, तो आउटपुट 2 होगा। दो नंबर 6 और 10 है