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

C++ में ऐरे में अधिकतम सतत अभाज्य संख्याओं की संख्या

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

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

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

आउटपुट - 3

व्याख्या - उपरोक्त ऐरे में अभाज्य संख्याएं 3,5,2,7,13 हैं। जो संख्याएं सतत हैं वे हैं 3,5,2 और 7,13। सबसे लंबे अनुक्रम में 3 संख्याएं हैं।

इनपुट - Arr[] = { 5,7,17,27,31,21,41 }

आउटपुट - 3

व्याख्या - उपरोक्त ऐरे में अभाज्य संख्याएं 5,7,17,31,41 हैं। जो संख्याएं सतत हैं वे हैं 5,7,17। सबसे लंबे अनुक्रम में 3 संख्याएं हैं।

प्रयुक्त दृष्टिकोण

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

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

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

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

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

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

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

  • परिणाम के रूप में maxC वापस करें।

C++ प्रोग्राम उदाहरण

#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; // यदि दोनों विफल हुए तो num अभाज्य है
}

int primeSubarray(int arr[], int n) {
    int count = 0;
    int maxSeq = 0;
    for (int i = 0; i < n; i++) {
        // यदि गैर-अभाज्य
        if (isprime(arr[i]) == 0)
            count = 0;
        // यदि अभाज्य
        else {
            count++;
            maxSeq = count > maxSeq ? count : maxSeq;
        }
    }
    return maxSeq;
}

int main() {
    int arr[] = { 8,4,2,1,3,5,7,9 };
    int n = 8;
    cout << "Maximum no. of contiguous Prime Numbers in an array: " << primeSubarray(arr, n);
    return 0;
}

आउटपुट

Maximum no. of contiguous Prime Numbers in an array: 3
  1. - C++ में किसी संख्या को अधिकतम संभव अभाज्य संख्याओं के योग के रूप में प्रस्तुत करना

    एक समस्या पर चर्चा करें जहां हमें एक संख्या N दी गई है, और हमें इस संख्या को अधिकतम अभाज्य संख्याओं के योग में विभाजित करने की आवश्यकता है, उदाहरण के लिए: इनपुट: N = 7 आउटपुट: 2 2 3 व्याख्या: 7 को दो 2 और एक 3 के योग के रूप में प्रस्तुत किया जा सकता है जो अधिकतम संभव अभाज्य संख्याएं हैं। इनपुट: N

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

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

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

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