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

C++ में nवीं स्मार्ट संख्या


एक स्मार्ट संख्या वह संख्या है जिसमें कम से कम तीन अलग-अलग अभाज्य गुणनखंड होते हैं। आपको एक संख्या N दी गई है। n-वीं स्मार्ट संख्या ढूंढें।

स्मार्ट संख्या श्रृंखला हैं

30, 42, 60, 66, 70, 78...

एल्गोरिदम

  • संख्या N आरंभ करें।
  • काउंट को 0 पर आरंभ करें।
  • एक फ़ंक्शन लिखें जो जांचे कि दी गई संख्या अभाज्य है या नहीं।
  • एक फ़ंक्शन लिखें जो जांचे कि संख्या स्मार्ट है या नहीं।
  • एक लूप लिखें जो 30 से पुनरावृति करता है क्योंकि पहली स्मार्ट संख्या 30 है।
    • अभाज्य संख्या फ़ंक्शन का उपयोग करके जांचें कि वर्तमान संख्या स्मार्ट संख्या है या नहीं।
    • स्मार्ट संख्या मिलने पर काउंट को 1 से बढ़ाएं।
    • जब आपकी काउंट N के बराबर हो तो स्मार्ट संख्या वापस करें।

कार्यान्वयन

निम्नलिखित C++ में उपरोक्त एल्गोरिदम का कार्यान्वयन है:

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

bool isPrime(int n) { 
    if (n < 2) return false; 
    for (int i = 2; i <= sqrt(n); i++) { 
        if (n % i == 0) return false; 
    } 
    return true; 
} 

bool isSmartNumber(int n) { 
    int count = 0; 
    for (int i = 2; i < n; i++) { 
        if (n % i == 0 && isPrime(i)) { 
            count += 1; 
        } 
        if (count == 3) { 
            return true; 
        } 
    } 
    return false; 
} 

int getNthSmartNumber(int n) { 
    int i = 30, count = 0; 
    while (true) { 
        if (isSmartNumber(i)) { 
            count += 1; 
        } 
        if (count == n) { 
            return i; 
        } 
        i += 1; 
    } 
} 

int main() { 
    int N = 25; 
    cout << getNthSmartNumber(N) << endl; 
    return 0; 
}

आउटपुट

यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्नलिखित परिणाम मिलेगा।

174

  1. - C++ में मितव्ययी संख्या (Frugal Number)

    इस समस्या में, हमें एक धनात्मक पूर्णांक N दिया गया है। हमारा कार्य यह जांचने के लिए एक प्रोग्राम बनाना है कि दी गई संख्या मितव्ययी संख्या है या नहीं। मितव्ययी संख्या (FRUGAL NUMBER) − एक संख्या जिसके अंकों की संख्या उस संख्या के अभाज्य गुणनखंडन में अंकों की संख्या से सख्ती से अधिक है। उदाहरण &

  1. C++ में पेंटाटोप संख्या C++ में पेंटाटोप संख्या

    एक पेंटाटोप संख्या को पास्कल के त्रिभुज में पांचवीं संख्या के रूप में वर्णित किया गया है। अब, चूंकि यह पांचवीं संख्या है, इसका मतलब है कि पास्कल के त्रिभुज में कम से कम पांच संख्याएं होनी चाहिए, इसलिए इस श्रृंखला की पहली संख्या 1 4 6 4 1 से शुरू होती है जो पास्कल के त्रिभुज की चौथी पंक्ति है। तो, इस

  1. - C++ में एडम नंबर जांचना

    इस खंड में हम देखेंगे कि दी गई संख्या एडम नंबर है या नहीं, इसकी जांच करने वाला प्रोग्राम कैसे लिखें। कोड में जाने से पहले देखते हैं कि एडम नंबर क्या है? एडम नंबर वह संख्या है, मान लीजिए n, यदि n का वर्ग और n के रिवर्स का वर्ग एक-दूसरे के रिवर्स हैं, तो वह संख्या एडम नंबर है। उदाहरण के लिए संख्या 13