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

C++ प्रोग्राम: ऐसी संख्याएं प्रिंट करना जहां कोई दो लगातार संख्याएं सह-अभाज्य न हों और हर तीन लगातार संख्याएं सह-अभाज्य हों

इस ट्यूटोरियल में, हम ऐसी संख्याएं प्रिंट करने के प्रोग्राम पर चर्चा करेंगे जहां कोई दो लगातार संख्याएं सह-अभाज्य (co-prime) नहीं हैं और हर तीन लगातार संख्याएं सह-अभाज्य हैं।

इसमें, हमें एक पूर्णांक N दिया जाएगा, हमें N पूर्णांक प्रिंट करने होंगे जो 109 से कम हों जैसे कि कोई दो लगातार संख्याएं सह-अभाज्य न हों लेकिन 3 लगातार पूर्णांकों का युग्म सह-अभाज्य होना चाहिए।

उदाहरण के लिए, मान लें हमारे पास पूर्णांक 4 है। तो वे संख्याएं जो उपरोक्त दोनों प्रदान की गई शर्तों का पालन करती हैं:

6 15 35 14

उदाहरण

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

#define limit 1000000000
#define MAX_PRIME 2000000
#define MAX 1000000
#define I_MAX 50000

map map1;
int b[MAX];
int p[MAX];
int j = 0;
bool prime[MAX_PRIME + 1];

void sieve(int n) {
    memset(prime, true, sizeof(prime));
    for (int p = 2; p * p <= n; p++) {
        if (prime[p] == true) {
            for (int i = p * p; i <= n; i += p)
                prime[i] = false;
        }
    }
    for (int p = 2; p <= n; p++) {
        if (prime[p]) {
            b[j++] = p;
        }
    }
}

int gcdiv(int a, int b) {
    if (b == 0)
        return a;
    return gcdiv(b, a % b);
}

// आवश्यक श्रृंखला प्रिंट करना
void print_elements(int n) {
    sieve(MAX_PRIME);
    int i, g, k, l, m, d;
    int ar[I_MAX + 2];
    for (i = 0; i < j; i++) {
        if ((b[i] * b[i + 1]) > limit)
            break;
        p[i] = b[i];
        map1[b[i] * b[i + 1]] = 1;
    }
    d = 550;
    bool flag = false;
    for (k = 2; (k < d - 1) && !flag; k++) {
        for (m = 2; (m < d) && !flag; m++) {
            for (l = m + k; l < d; l += k) {
                if (((b[l] * b[l + k]) < limit) &&
                    (l + k) < d && p[i - 1] != b[l + k] &&
                    p[i - 1] != b[l] && map1[b[l] * b[l + k]] != 1) {
                    if (map1[p[i - 1] * b[l]] != 1) {
                        p[i] = b[l];
                        map1[p[i - 1] * b[l]] = 1;
                        i++;
                    }
                }
            }
            if (i >= I_MAX) {
                flag = true;
                break;
            }
        }
    }
    for (i = 0; i < n; i++)
        ar[i] = p[i] * p[i + 1];
    for (i = 0; i < n - 1; i++)
        cout << ar[i] << " ";
    g = gcdiv(ar[n - 1], ar[n - 2]);
    cout << g * 2 << endl;
}

int main() {
    int n = 4;
    print_elements(n);
    return 0;
}

आउटपुट

6 15 35 14
  1. C++ प्रोग्राम में डायनामिक प्रोग्रामिंग का उपयोग करके बाइनरी ट्री में आसन्न न होने वाले नोड्स का अधिकतम योग C++ प्रोग्राम में डायनामिक प्रोग्रामिंग का उपयोग करके बाइनरी ट्री में आसन्न न होने वाले नोड्स का अधिकतम योग

    इस समस्या में, हमें एक बाइनरी ट्री दिया गया है जिसमें प्रत्येक नोड का एक मान है। हमारा कार्य एक प्रोग्राम बनाना है जो डायनामिक प्रोग्रामिंग का उपयोग करके बाइनरी ट्री में ऐसे नोड्स का अधिकतम योग ढूंढे जो आसन्न न हों। समस्या विवरण हम बाइनरी ट्री के उपसमुच्चय (subsets) को चुनेंगे ताकि योग अधिकतम हो औ

  1. C++ में जांचें कि क्या तीन बिंदु संरेखीय हैं या नहीं C++ में जांचें कि क्या तीन बिंदु संरेखीय हैं या नहीं

    तीन अलग-अलग मान वाले बिंदु दिए गए हैं और कार्य यह जांचना है कि क्या बिंदु संरेखीय हैं या नहीं। बिंदुओं को संरेखीय कहा जाता है यदि वे एक ही रेखा पर स्थित हैं और वे असंरेखीय हैं यदि वे अलग-अलग रेखाओं पर हैं। नीचे संरेखीय और असंरेखीय बिंदुओं का चित्र दिया गया है। इनपुट x1 = 1, x2 = 2, x3 = 3, y1 =

  1. सर्कुलर ऐरे में अधिकतम योग जहाँ कोई दो आसन्न तत्व न हों - C++ सर्कुलर ऐरे में अधिकतम योग जहाँ कोई दो आसन्न तत्व न हों - C++

    इस समस्या में, हमें एक सर्कुलर ऐरे cirArr[] दिया गया है। हमारा कार्य एक प्रोग्राम बनाना है जो C++ में सर्कुलर ऐरे में अधिकतम योग ढूंढे जहाँ कोई दो आसन्न तत्व न हों।समस्या विवरणसर्कुलर ऐरे के लिए, हमें ऐरे के तत्वों का अधिकतम योग ढूंढना है जहाँ आसन्न तत्वों को नहीं लिया जा सकता, यानी हमें वैकल्पिक तत