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

योग के साथ जोड़े को एक प्रमुख संख्या के रूप में और सी ++ में n से कम गिनें

हमें इनपुट के रूप में एक सकारात्मक संख्या n दी गई है। लक्ष्य संभावित जोड़े (i,j) की संख्या ज्ञात करना है जैसे कि प्रत्येक जोड़ी में योग (i+j) होता है जो कि अभाज्य है और n से कम है। साथ ही i !=j और i,j>=1 यदि n 4 है तो केवल 1 युग्म संभव है जो (1,2) है। यहां 1+2 =3 अभाज्य है और 4 से कम है। साथ ही 1,2>=1.

आइए उदाहरणों से समझते हैं।

इनपुट - n=7

आउटपुट − एक अभाज्य संख्या और n से कम योग वाले युग्मों की संख्या − 3

. है

स्पष्टीकरण - जोड़े होंगे (1,2), (1,4), (2,3)। योग 3, 5, 5 अभाज्य हैं और 7 से कम हैं।

इनपुट - n=10

आउटपुट − एक अभाज्य संख्या और n से कम योग वाले युग्मों की संख्या − 6

. है

स्पष्टीकरण -

जोड़े होंगे (1,2), (1,4), (2,3), (1,6), (2,5), (3,4)।

योग 3, 5, 5, 7, 7, 7 अभाज्य हैं और 10 से कम हैं।

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

इस दृष्टिकोण में हम सबसे पहले सुंदरम की छलनी का उपयोग करके n से कम सभी अभाज्य संख्याओं को फ़ंक्शन check_prime(bool check[], int temp) में पाएंगे।

साथ ही प्रत्येक विषम संख्या अस्थायी के लिए, अलग-अलग युग्मों की संख्या जिनका योग अस्थायी है, अस्थायी/2 होगा।

2 को छोड़कर सभी अभाज्य संख्याएँ विषम हैं इसलिए यदि हमें n से कम कोई अभाज्य संख्या मिलती है तो हम जोड़े की संख्या में अस्थायी/2 जोड़ देंगे।

  • वेरिएबल n को इनपुट के रूप में लें।

  • फ़ंक्शन prime_pair(int n) n लेता है और योग के साथ जोड़े की संख्या को एक प्रमुख संख्या और n से कम के रूप में देता है।

  • प्रारंभिक गणना 0 के रूप में लें।

  • चूंकि सुंदरम की चलनी इनपुट n के लिए 2*n+2 से कम अभाज्य संख्याएँ उत्पन्न करती है। हम n को घटाकर उसका आधा कर देते हैं और temp_2 में स्टोर कर लेते हैं।

  • प्रपत्र के सभी नंबरों (i+j+2*i*j ) को सही के रूप में चिह्नित करने के लिए लंबाई temp_2 की एक सरणी जांचें [] बनाएं। इसे सभी तत्वों के साथ असत्य के रूप में प्रारंभ करें।

  • फ़ंक्शन check_prime (बूल चेक [], int अस्थायी) का उपयोग करके, फ़ॉर्म की संख्याओं के लिए सत्य के साथ चेक [] प्रारंभ करें (i + j + 2 * i * j)। और यह योग <अस्थायी।

  • अब इंडेक्स i=0 से i . के लिए लूप का उपयोग करके चेक [] को पार करें

  • प्रत्येक चेक के लिए [i] असत्य के रूप में, अभाज्य संख्या होगी temp=2*i+1.

  • जो जोड़े अस्थायी रूप से जुड़ते हैं वे अस्थायी/2 होंगे।

  • गिनने के लिए अस्थायी/2 जोड़ें।

  • लूप के अंत में हमारे पास कुल जोड़ियां होंगी जिनका योग अभाज्य होगा और n से कम होगा।

  • परिणाम के रूप में वापसी की गिनती।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
void check_prime(bool check[], int temp){
   for (int i=1; i<=temp; i++){
      for (int j=i; (i + j + 2*i*j) <= temp; j++){
         check[i + j + 2*i*j] = true;
      }
   }
}
int prime_pair(int n){
   int count = 0;
   int temp;
   int temp_2 = (n-2)/2;
   bool check[temp_2 + 1];
   memset(check, false, sizeof(check));
   check_prime(check, temp_2);
   for (int i=1; i <= temp_2; i++){
      if (check[i] == false){
         temp = 2*i + 1;
         count += (temp / 2);
      }
   }
   return count;
}
int main(){
   int n = 10;
   cout<<"Count of pairs with sum as a prime number and less than n are: " <<prime_pair(n);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Count of pairs with sum as a prime number and less than n are: 6

  1. उन जोड़ों की संख्या की गणना करें जिनके कॉलम योग C++ में पंक्ति योग से अधिक हैं

    हमें NXN आकार का मैट्रिक्स दिया गया है। लक्ष्य इंडेक्स (i,j) के सभी मान्य युग्मों की गिनती इस प्रकार ज्ञात करना है कि कॉलम j का योग तत्व पंक्ति i के तत्वों के योग से अधिक हो। हम मैट्रिक्स को पार करके ऐसा करेंगे और प्रत्येक पंक्ति और स्तंभ के तत्वों के योग की गणना करेंगे। पंक्तियों में प्रत्येक के

  1. C++ में इससे कम संख्या के सभी प्राइम क्वाड्रपलेट को प्रिंट करें

    इस समस्या में, हमें एक धनात्मक पूर्णांक N दिया जाता है, और हमें n से कम या उसके बराबर सभी अभाज्य चौगुनी मुद्रित करनी होती है। प्रमुख चौगुनी {p, p+2 . के रूप में परिकलित चार अभाज्य संख्याओं का समुच्चय है ,p+6 , पी+8 }. उदाहरण - 5 7 11 13. आइए समस्या को समझने के लिए एक उदाहरण लेते हैं - Input: N = 1

  1. C++ में Y से कम संख्या वाले सेटों की न्यूनतम संख्या

    समस्या कथन लगातार अंकों की एक स्ट्रिंग और एक संख्या Y को देखते हुए, कार्य न्यूनतम सेटों की संख्या ज्ञात करना है जैसे कि प्रत्येक सेट नीचे दिए गए नियम का पालन करता है - सेट में लगातार संख्याएं होनी चाहिए किसी भी अंक का एक से अधिक बार उपयोग नहीं किया जा सकता है। सेट में संख्या Y से अधिक नहीं होनी चा