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

C++ में बाइनरी रिप्रेजेंटेशन में सेट बिट्स की अभाज्य संख्या

इस समस्या में, हमें दो पूर्णांक L और R दिए गए हैं। हमारा कार्य उन कुल संख्याओं को प्रिंट करना है जिन्होंने बिट्स को एक अभाज्य संख्या में गिना है जो कि L से R के बीच है।

आइए समस्या को समझने के लिए एक उदाहरण लेते हैं

Input: L = 7, R = 12
Output: 6
Explanation:
7 -> 111 , set bits = 2, prime number.
8 -> 1000 , set bits = 1, not prime number.
9 -> 1001 , set bits = 2, prime number
10 -> 1010 , set bits = 2, prime number
11 -> 1011, set bits = 3, prime number
12 -> 1100, set bits = 2, prime number

इस समस्या को हल करने के लिए, हम सीमा के भीतर प्रत्येक तत्व को पार करेंगे। और संख्या में सेट बिट्स की कुल संख्या की जांच करें, इसके लिए हम सीपीपी _बिल्टिन_पॉपकाउंट () में एक पूर्वनिर्धारित फ़ंक्शन का उपयोग करेंगे। फिर, हम प्राइम के लिए संख्या के सेट बिट्स की जांच करेंगे। यदि हाँ तो गिनती बढ़ाएँ अन्यथा नहीं।

हमारे समाधान के कार्यान्वयन को दिखाने के लिए कार्यक्रम

उदाहरण

#include <iostream>
using namespace std;
bool isPrimeNumber(int n) {
   if (n <= 1) return false;
   if (n <= 3) return true;
   if (n%2 == 0 || n%3 == 0) return false;
   for (int i=5; i*i<=n; i=i+6)
   if (n%i == 0 || n%(i+2) == 0)
   return false;
   return true;
}
void printPrimeSetBits(int l, int r) {
   int tot_bit, count = 0;
   for (int i = l; i <= r; i++) {
      tot_bit = __builtin_popcount(i);
      if (isPrimeNumber(tot_bit))
         count++;
   }
   cout<<count;
}
int main() {
   int L = 7, R = 13;
   cout<<"Total numbers with prime set bits between "<<L<<" and "<<R<<" are : ";
   printPrimeSetBits(L, R);
   return 0;
}

आउटपुट

Total numbers with prime set bits between 7 and 13 are : 6

  1. सी ++ में सेट बिट्स की गिनती के अनुसार एक सरणी को क्रमबद्ध करें

    यहां हम सेट-बिट्स के आधार पर एक सरणी को सॉर्ट करने के लिए एक दिलचस्प समस्या देखेंगे। जब सरणी में एक तत्व में सेट-बिट्स की संख्या अधिक होती है, तो उसे दूसरे तत्व से पहले रखा जाएगा जिसमें सेट बिट्स की संख्या कम होती है। मान लीजिए कुछ संख्याएं 12, 15, 7 हैं। तो सेट बिट्स मूल रूप से उनके द्विआधारी प्रति

  1. C++ प्रोग्रामिंग में बाइनरी ट्री के प्रत्येक नोड में सेट बिट्स की संख्या प्रिंट करें।

    बाइनरी ट्री को देखते हुए, फ़ंक्शन नोड्स में संग्रहीत कुंजियों के बाइनरी मान उत्पन्न करेगा और फिर उस बाइनरी समकक्ष में सेट बिट्स(1) की संख्या लौटाएगा। उदाहरण बाइनरी ट्री जिसमें चाबियां होती हैं:10 3 211 140 162 100 और 146 कुंजी बाइनरी समकक्ष बिट्स (आउटपुट) सेट करें 10 1010 2 3 0011 2 211 1101

  1. पायथन में बाइनरी प्रतिनिधित्व में सेट बिट्स की अभाज्य संख्या

    मान लीजिए कि हमारे पास दो पूर्णांक L और R हैं, हमें श्रेणी [L, R] (समावेशी) में संख्याओं की संख्या ज्ञात करनी है, जिनके बाइनरी रूप में सेट बिट्स की एक अभाज्य संख्या है। इसलिए, यदि इनपुट एल =6 और आर =10 की तरह है, तो आउटपुट 4 होगा, क्योंकि 4 नंबर हैं 6(110),7(111),9(1001),10(1010), सभी में प्राइम है