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

अधिकतम संख्या सी ++ में एक सरणी में सन्निहित प्राइम नंबरों का


हमें अभाज्य संख्याओं की एक सरणी दी गई है, जिन्हें यादृच्छिक क्रम में व्यवस्थित किया गया है। सरणी का आकार N है। लक्ष्य सरणी में सन्निहित अभाज्य संख्याओं का सबसे लंबा अनुक्रम खोजना है।

अभाज्य संख्या वह होती है जिसके केवल दो गुणनखंड होते हैं, 1 और स्वयं संख्या। 1,2,3,5,7,11,13…. अभाज्य संख्याएँ हैं जबकि 4,6,8,9,10….20 अभाज्य संख्याएँ हैं। प्रत्येक अभाज्य संख्या के 2 से अधिक गुणनखंड होते हैं। आइए उदाहरणों से समझते हैं।

इनपुट - एआर [] ={ 1,3,5,2,6,7,13,4,9,10

आउटपुट -3

स्पष्टीकरण -उपरोक्त सरणी में अभाज्य संख्याएँ 3,5,2,7,13 हैं। सन्निहित संख्याएँ 3,5,2 और 7,13 हैं। सबसे लंबे अनुक्रम में 3 संख्याएँ होती हैं। तो इसका उत्तर 4 है।

इनपुट - एआर [] ={ 5,7,17,27,31,21,41}।

आउटपुट -3

स्पष्टीकरण -उपरोक्त सरणी में अभाज्य संख्याएँ 5,7,17,31,41 हैं। सन्निहित संख्याएँ 5,7,17 ​​हैं। सबसे लंबे अनुक्रम में 3 संख्याएँ होती हैं। तो जवाब है 3.

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

  • पूर्णांक सरणी Arr[] का उपयोग अभाज्य और अभाज्य संख्याओं को संग्रहीत करने के लिए किया जाता है।

  • फ़ंक्शन isprime(int num) का उपयोग यह जांचने के लिए किया जाता है कि संख्या अभाज्य है या नहीं। यदि यह अभाज्य है तो इसका आधा होने तक कोई गुणनखंड नहीं होना चाहिए।

  • अभाज्य संख्याओं के लिए isprime() रिटर्न 1 और यह 0 देता है।

  • फंक्शन primeSubarray(int arr[], int n) दो इनपुट पैरामीटर लेता है। संख्याओं की सरणी ही, इसका आकार। सन्निहित अभाज्य संख्याओं के सबसे लंबे अनुक्रम का आकार देता है।

  • शुरू से एआर [] में संख्याओं को पार करें। अगर गिरफ्तारी [i] गैर-अभाज्य है ( isprime(arr[i])==0 )। फिर सन्निहित अभाज्य संख्याओं की संख्या को 0 के रूप में बदलें।

  • यदि यह अभाज्य है, तो अभाज्य संख्याओं की संख्या बढ़ाएँ। (गैर-अभाज्य होने पर यह 0 से फिर से शुरू होगा)

  • जांचें कि क्या गिनती अब तक अधिकतम है, यदि हां तो इसका मान अधिकतम सी में संग्रहीत करें।

  • परिणाम के रूप में maxC लौटाएं।

उदाहरण

#include <iostream>
#include <stdio.h>
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 primeSubarray(int arr[], int n){
   int count=0;
   int maxSeq=0;
   for (int i = 0; i < n; i++) {
      // if non-prime
      if (isprime(arr[i]) == 0)
         count = 0;
         //if prime
      else {
         count++;
         //printf("\n%d",arr[i]); print prime number subsequence
         maxSeq=count>maxSeq?count:maxSeq;
      }
   }
   return maxSeq;
}
int main(){
   int arr[] = { 8,4,2,1,3,5,7,9 };
   int n =8;
   printf("Maximum no. of contiguous Prime Numbers in an array: %d",
   primeSubarray(arr, n));
   return 0;
}

आउटपुट

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

Maximum no. of contiguous Prime Numbers in an array : 3

  1. C++ में अभाज्य संख्याओं की अधिकतम संभव संख्या के योग के रूप में एक संख्या का प्रतिनिधित्व करें

    एक समस्या पर चर्चा करें जहाँ हमें एक संख्या N दी गई है, और हमें इस संख्या को अधिकतम अभाज्य संख्याओं के योग में विभाजित करने की आवश्यकता है, उदाहरण के लिए Input: N = 7 Output: 2 2 3 Explanation: 7 can be represented as the sum of two 2’s and a 3 which are the maximum possible prime numbers. In

  1. सी ++ में एक सरणी में प्राइम की संख्या की गणना करें

    हमें संख्याओं की एक सरणी के साथ दिया गया है। लक्ष्य उस सरणी में अभाज्य संख्याओं की संख्या ज्ञात करना है। एक अभाज्य संख्या वह होती है जो 1 और स्वयं संख्या से विभाज्य होती है। इसके केवल दो कारक हैं। हम जाँच करेंगे कि क्या संख्या अभाज्य है, पहले तत्व से शुरू होकर अंतिम तक और अब तक मिली अभाज्य संख्याओं

  1. C++ में किसी सरणी में सभी अभाज्य संख्याओं का गुणनफल

    कुछ तत्वों के साथ एक पूर्णांक सरणी arr[] को देखते हुए, कार्य उस संख्याओं की सभी अभाज्य संख्याओं का गुणनफल खोजना है। अभाज्य संख्याएँ वे संख्याएँ होती हैं जिन्हें या तो 1 से या स्वयं संख्या से विभाजित किया जाता है, या एक अभाज्य संख्या एक ऐसी संख्या होती है जो 1 और स्वयं संख्या को छोड़कर किसी अन्य संख