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

C++ में ऐरे में हर K-वें प्राइम नंबर का उत्पाद


n प्राइम नंबर्स वाला एक ऐरे arr[n] और k दिया गया है; कार्य ऐरे में हर k-वें प्राइम नंबर का उत्पाद ढूंढना है।

जैसे, हमारे पास एक ऐरे arr[] = {3, 5, 7, 11} और k = 2 है तो हर k के बाद प्राइम नंबर यानी 5 और 11 हमें उनका उत्पाद ढूंढना होगा जो 5x11 = 55 होगा और परिणाम को आउटपुट के रूप में प्रिंट करना होगा।

प्राइम नंबर क्या हैं?

एक प्राइम नंबर एक प्राकृतिक संख्या है जिसे 1 या संख्या को छोड़कर किसी अन्य संख्या से विभाजित नहीं किया जा सकता। कुछ प्राइम नंबर हैं 2, 3, 5, 7, 11, 13 आदि।

उदाहरण

Input: arr[] = {3, 5, 7, 11, 13} k= 2
Output: 55
Explanation: ऐरे के हर 2nd तत्व 5 और 11 हैं; उनका उत्पाद 55 होगा

Input: arr[] = {5, 7, 13, 23, 31} k = 3
Output: 13
Explanation: ऐरे का हर 3rd तत्व 13 है तो आउटपुट 13 होगा।

उपरोक्त समस्या को हल करने के लिए हम जिस दृष्टिकोण का उपयोग करेंगे:

  • n तत्वों का इनपुट ऐरे और k लें, हर k-वें तत्व का उत्पाद ढूंढने के लिए।
  • प्राइम नंबर्स स्टोर करने के लिए एक सीव बनाएं।
  • फिर हमें ऐरे को पार करना होगा और k-वां तत्व प्राप्त करना होगा और इसे उत्पाद वेरिएबल से पुनरावर्ती रूप से हर k-वें तत्व के लिए गुणा करना होगा।
  • उत्पाद प्रिंट करें।

एल्गोरिदम

Start
Step 1-> MAX 1000000 परिभाषित और प्रारंभ करें
Step 2-> bool prime[MAX + 1] परिभाषित करें
Step 3-> फंक्शन createsieve() में
    Call memset(prime, true, sizeof(prime));
    Set prime[1] = false
    Set prime[0] = false
    Loop For p = 2 and p * p <= MAX and p++
        If prime[p] == true then,
            For i = p * 2 and i <= MAX and i += p
                Set prime[i] = false
Step 4-> void productOfKthPrimes(int arr[], int n, int k)
    Set c = 0
    Set product = 1
    Loop For i = 0 and i < n and i++
        If prime[arr[i]] then,
            Increment c by 1
            If c % k == 0 {
                Set product = product * arr[i]
                Set c = 0
                Print the product
Step 5-> फंक्शन main() में
    Call function createsieve()
    Set n = 5, k = 2
    Set arr[n] = { 2, 3, 11, 13, 23 }
    Call productOfKthPrimes(arr, n, k)
Stop

उदाहरण

#include <bits/stdc++.h>
using namespace std;

#define MAX 1000000
bool prime[MAX + 1];

void createsieve() {
    memset(prime, true, sizeof(prime));
    // 0 और 1 प्राइम नंबर नहीं हैं
    prime[1] = false;
    prime[0] = false;
    for (int p = 2; p * p <= MAX; p++) {
        if (prime[p] == true) {
            // p के सभी गुणक ढूंढना
            for (int i = p * 2; i <= MAX; i += p)
                prime[i] = false;
        }
    }
}

// उत्तर की गणना करें
void productOfKthPrimes(int arr[], int n, int k) {
    // प्राइम्स की संख्या गिनें
    int c = 0;
    // प्राइम्स का उत्पाद ढूंढें
    long long int product = 1;
    // ऐरे को पार करें
    for (int i = 0; i < n; i++) {
        // यदि संख्या प्राइम है
        if (prime[arr[i]]) {
            c++;
            if (c % k == 0) {
                product *= arr[i];
                c = 0;
            }
        }
    }
    cout << product << endl;
}

// मुख्य ब्लॉक
int main() {
    // सीव बनाएं
    createsieve();
    int n = 5, k = 2;
    int arr[n] = { 2, 3, 11, 13, 23 };
    productOfKthPrimes(arr, n, k);
    return 0;
}

आउटपुट

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

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

  1. - C++ में जांचें कि संख्या फुल अभाज्य है या नहीं

    यहां हम देखेंगे कि कैसे जांचें कि कोई संख्या फुल अभाज्य है या नहीं। एक संख्या को फुल अभाज्य कहा जाता है, यदि यह अभाज्य है, और इसके सभी अंक भी अभाज्य हैं। मान लीजिए एक संख्या 37 है, यह फुल अभाज्य है। लेकिन 97 फुल अभाज्य नहीं है क्योंकि 9 अभाज्य संख्या नहीं है। एक कुशल दृष्टिकोण यह है कि; पहले हमें ज

  1. - C++ में प्रोडक्ट ऐरे पजल (अतिरिक्त स्पेस के साथ)

    यहां हम ऐरे से संबंधित एक रोचक समस्या देखेंगे। n तत्वों वाला एक ऐरे है। हमें n तत्वों का एक और ऐरे बनाना है। लेकिन दूसरे ऐरे का i-th स्थान पहले ऐरे के i-th तत्व को छोड़कर सभी तत्वों का गुणनफल रखेगा। और एक प्रतिबंध है कि हम इस समस्या में भाग ऑपरेटर का उपयोग नहीं कर सकते। यदि हम भाग ऑपरेशन का उपयोग क