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

C++ में 1 से N तक क्रमहीन सह-अभाज्य जोड़े गिनने की क्वेरी

इस समस्या में, हमें Q क्वेरी दी गई हैं जिनमें प्रत्येक में एक संख्या N है। हमारा कार्य C++ में 1 से N तक क्रमहीन सह-अभाज्य जोड़े गिनने की क्वेरी को हल करने के लिए एक प्रोग्राम बनाना है।

सह-अभाज्य को अपेक्षाकृत अभाज्य या पारस्परिक रूप से अभाज्य के रूप में भी जाना जाता है, ये संख्याओं के ऐसे जोड़े हैं जिनका केवल एक गुणनखंड होता है यानी 1।

उदाहरण से समझते हैं

इनपुट: Q = 2, queries = [5, 6]

आउटपुट: 10

व्याख्या

जोड़े हैं: (1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (2, 3), (2, 5), (3, 4), (3, 5), (4, 5)

समाधान दृष्टिकोण

समस्या का सबसे आशाजनक समाधान यूलर के टॉटिएंट फंक्शन φ(N) का उपयोग करना है। φ(N) दिए गए मान N तक सह-अभाज्य की कुल संख्या की गणना करता है। यूलर का टॉटिएंट फंक्शन है:

φ(N) = N ∏ (1 - 1/p)

जहां p, N के सभी अभाज्य गुणनखंड हैं।

अब, हम N तक क्रमहीन सह-अभाज्य जोड़े की संख्या की पूर्व-गणना करेंगे। और फिर पूर्व-गणना किए गए ऐरे से प्रत्येक क्वेरी का मान ढूंढेंगे।

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

#include <iostream>
using namespace std;

#define N 10001
int phi[N];
int CoPrimePairs[N];

void computePhi() {
    for (int i = 1; i < N; i++)
        phi[i] = i;
    for (int p = 2; p < N; p++) {
        if (phi[p] == p) {
            phi[p] = p - 1;
            for (int i = 2 * p; i < N; i += p) {
                phi[i] = (phi[i] / p) * (p - 1);
            }
        }
    }
}

void findCoPrimes() {
    computePhi();
    for (int i = 1; i < N; i++)
        CoPrimePairs[i] = CoPrimePairs[i - 1] + phi[i];
}

int main() {
    findCoPrimes();
    int Q = 3;
    int query[] = { 5, 7, 9 };
    for (int i = 0; i < Q; i++)
        cout << "For Query " << (i+1) << ": Number of prime pairs is " << CoPrimePairs[query[i]] << endl;
    return 0;
}

आउटपुट

For Query 1: Number of prime pairs is 10
For Query 2: Number of prime pairs is 18
For Query 3: Number of prime pairs is 28
  1. - C++ में सरणी में यूनिक जोड़े की संख्या निकालना

    C++ में सरणी में कई यूनिक जोड़े बनाने के लिए उपयुक्त ज्ञान की आवश्यकता होती है। यूनिक जोड़े की संख्या निकालने में, हम दी गई सरणी में सभी यूनिक जोड़े गिनते हैं, यानी वे सभी संभावित जोड़े बनाए जा सकते हैं जहां प्रत्येक जोड़ा यूनिक होना चाहिए। उदाहरण -इनपुट: array[] = { 5, 5, 9 } आउटपुट: 4 व्याख्या: सभ

  1. - C++ में पहले N प्राकृतिक संख्याओं से K से विभाज्य योग वाले जोड़ों की संख्या

    संख्याएं N और K दी गई हैं, हमें उन जोड़ों की संख्या गिननी है जिनका योग K से विभाज्य है। आइए एक उदाहरण देखते हैं।इनपुटN = 3 K = 2आउटपुट1केवल एक जोड़ी है जिसका योग K से विभाज्य है। और वह जोड़ी है (1, 3)।एल्गोरिदमN और K को आरंभ करें।N तक प्राकृतिक संख्याएं उत्पन्न करें और उन्हें एक सरणी में स्टोर करें।

  1. OpenCV में C++ का उपयोग करके चेहरों की संख्या गिनें OpenCV में C++ का उपयोग करके चेहरों की संख्या गिनें

    छवि में स्थित चेहरों की संख्या गिनना आसान है। पिछले अनुभाग में हमने जो प्रोग्राम लिखा था, उसमें पहले से ही faces.size() में चेहरों की संख्या की जानकारी है। यह कोड faces.size() एक पूर्णांक मान देता है।उदाहरण के लिए, यदि हम int x = faces.size() लिखते हैं, तो x में चेहरों की संख्या होगी।दिए गए छवि से च