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

संख्याओं को मुद्रित करने का कार्यक्रम इस तरह से कि कोई भी दो क्रमागत संख्याएँ सह-अभाज्य न हों और प्रत्येक तीन क्रमागत संख्याएँ सह-अभाज्य हों C++ का उपयोग करना

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

इसमें हमें एक पूर्णांक N दिया जाएगा, हमें 109 से कम N पूर्णांकों को इस प्रकार प्रिंट करना होगा कि कोई भी दो क्रमागत संख्याएँ सहअभाज्य न हों लेकिन 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<int, int> 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);
}
//printing the required series
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++ प्रोग्राम में डायनामिक प्रोग्रामिंग का उपयोग करते हुए कोई भी दो आसन्न नहीं हैं

    इस समस्या में, हमें एक बाइनरी ट्री दिया जाता है जिसमें प्रत्येक नोड का एक मान होता है। हमारा काम बाइनरीट्री में नोड्स की अधिकतम राशि को खोजने के लिए एक प्रोग्राम बनाना है जैसे कि कोई भी दो आसन्न न हो। डायनामिक प्रोग्रामिंग का उपयोग करना। समस्या का विवरण - हम योग को अधिकतम करने के लिए बाइनरी ट्री के

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

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

  1. सर्कुलर सरणी में अधिकतम योग जैसे कि कोई भी दो तत्व सी ++ में आसन्न नहीं हैं

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