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

केवल C++ में अभाज्य अंकों (2, 3, 5 और 7) से बनी n-th संख्या ढूँढना

इस समस्या में, हमें एक नंबर N दिया जाता है। हमारा काम केवल अभाज्य अंकों (2, 3, 5 और 7) से बनी n-th संख्या को खोजना है। ।

केवल अभाज्य अंकों (2, 3, 5, 7) से मिलकर बनी श्रृंखला है, 2, 3, 5, 7, 22, 23, 25, 27, 32, 33...

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

Input: N = 6
Output: 23

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

समस्या को हल करने का एक सरल तरीका यह है कि दिए गए सूचकांक में संख्या ज्ञात की जाए अर्थात श्रृंखला का पद ज्ञात किया जाए, इसके लिए हम श्रृंखला का अवलोकन करेंगे।

हमारे पास चार अलग-अलग अभाज्य संख्याएँ हैं इसलिए बनाई गई श्रृंखला को चार अंकों की संख्या प्रणाली के रूप में माना जा सकता है। इस संख्या प्रणाली में, हमारे पास लंबाई x की 4x संख्याएं हैं।

अब इस समस्या को हल करने के लिए, हमारे पास वह श्रंखला है जिसमें हम o संख्याएँ ज्ञात करेंगे जिनसे वे संख्याएँ बनाते हैं। फिर हम Nth नंबर गिनेंगे और जरूरी नंबर प्रिंट करेंगे।

लंबाई का उपयोग करके Nth संख्या ज्ञात करने के लिए हम लंबाई की पहली संख्या (x-1) से गिनेंगे और फिर इस N को गिनेंगे।

उदाहरण

हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम

#include <iostream>
#include <math.h>
using namespace std;
void findNthNumber(int n){
   long x = 1;
   long lastNum = 0;
   while (true) {
      long currNum = lastNum + pow(4, x);
      if (lastNum < n && currNum >= n)
         break;
      x++;
      lastNum = currNum;
   }
   for (int i = 1; i <= x; i++) {
      for (long j = 1; j <= 4; j++) {
         if (lastNum + pow(4, x - i) < n)
            lastNum += pow(4, x - i);
         else {
            if (j == 1)
               cout<<"2";
            else if (j == 2)
               cout<<"3";
            else if (j == 3)
               cout<<"5";
            else if (j == 4)
               cout<<"7";
            break;
         }
      }
   }
}
int main(){
   int N = 32;
   cout<<N<<"th number made of prime digits is ";
   findNthNumber(N);
   return 0;
}

आउटपुट

32th number made of prime digits is 257

  1. अंकों के साथ न्यूनतम संख्या और केवल 7 और C++ में दिया गया योग

    समस्या कथन भाग्यशाली संख्याएँ धनात्मक पूर्णांक होती हैं जिनके दशमलव निरूपण में केवल भाग्यशाली अंक 4 और 7 होते हैं। कार्य न्यूनतम भाग्यशाली संख्या ज्ञात करना है जिसमें n के बराबर अंकों का योग हो। उदाहरण यदि योग =22 है तो लकी नंबर 4477 है क्योंकि 4 + 4 + 7 + 7 =22 एल्गोरिदम 1. If sum is multiple of

  1. C++ में किसी संख्या का योग और उसका अधिकतम अभाज्य गुणनखण्ड ज्ञात कीजिए

    मान लीजिए कि हमारे पास एक धनात्मक संख्या n है, और हमें N का योग और उसका अधिकतम अभाज्य गुणनखंड ज्ञात करना है। तो जब संख्या 26 है, तो अधिकतम अभाज्य गुणनखंड 13 है, तो योग 26 + 13 =39 होगा। दृष्टिकोण सीधे आगे है। बस अधिकतम अभाज्य गुणनखंड खोजें, और योग और वापसी की गणना करें। उदाहरण #include<iostream&

  1. 1 से n तक के उन पूर्णांकों की संख्या ज्ञात कीजिए जिनमें केवल C++ में अंक 0 और 1 हैं

    मान लीजिए, हमारे पास एक संख्या n है। हमारा कार्य 1 से n तक के पूर्णांकों की संख्या ज्ञात करना है, जिसमें केवल अंक 0s और 1s हैं। तो अगर n =15, तो आउटपुट होगा। चूंकि संख्याएं 1, 10, 11 हैं इसे हल करने के लिए, हम रिकर्सिव फ़ंक्शन का उपयोग करके 0s और 1s का उपयोग करके पूर्णांक बनाएंगे। निम्नलिखित कोड हम