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

C++ में जांचें कि क्या कोई संख्या प्रोथ नंबर है या नहीं


एक संख्या 'n' दी गई है और कार्य यह निर्धारित करना है कि दी गई धनात्मक पूर्णांक प्रोथ नंबर है या नहीं और परिणाम को आउटपुट के रूप में प्रदर्शित करना है।

प्रोथ नंबर क्या है?

एक प्रोथ नंबर निम्न द्वारा दिया जाता है:

$$N=k\cdot\:2^{n}+1$$

जहां, n एक धनात्मक पूर्णांक है और k एक विषम धनात्मक पूर्णांक है।

पहले कुछ प्रोथ नंबर नीचे दिए गए हैं -

3, 5, 9, 13, 17, 25, 33, 41, 49, 57, 65, 81, 97.......

इनपुट

संख्या: 17

आउटपुट

यह एक प्रोथ नंबर है

इनपुट

संख्या: 18

आउटपुट

यह प्रोथ नंबर नहीं है

दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण

  • शर्त की जांच के लिए संख्या इनपुट करें।
  • दिए गए सूत्र को लागू करके जांचें कि क्या यह प्रोथ नंबर है या नहीं।
  • यदि शर्त सत्य है तो प्रिंट करें "यह एक प्रोथ नंबर है"।
  • यदि शर्त सत्य नहीं है तो प्रिंट करें "यह प्रोथ नंबर नहीं है"।

एल्गोरिदम

चरण 1 → 2 की घात की गणना के लिए फ़ंक्शन घोषित करें
bool isPower(int num) {
    return (num && !(num & (num - 1)));
}

चरण 2 → जांचने के लिए फ़ंक्शन घोषित करें कि कोई संख्या प्रोथ नंबर है या नहीं
bool isProth(int num) {
    int k = 1;
    while (k < (num / k)) {
        if (num % k == 0) {
            if (isPower(num / k))
                return true;
        }
        k = k + 2;
    }
    return false;
}

चरण 3 → main() में
int num = 17;
if (isProth(num - 1))
    cout << "यह एक प्रोथ नंबर है";
else
    cout << "यह प्रोथ नंबर नहीं है";

उदाहरण

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

bool isPower(int num) {
    return (num && !(num & (num - 1)));
}

bool isProth(int num) {
    int k = 1;
    while (k < (num / k)) {
        if (num % k == 0) {
            if (isPower(num / k))
                return true;
        }
        k = k + 2;
    }
    return false;
}

int main() {
    int num = 17;
    if (isProth(num - 1))
        cout << "यह एक प्रोथ नंबर है";
    else
        cout << "यह प्रोथ नंबर नहीं है";
    return 0;
}

आउटपुट

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

यह एक प्रोथ नंबर है

  1. C++ में जांचें कि बाइनरी ट्री ऊंचाई-संतुलित है या नहीं C++ में जांचें कि बाइनरी ट्री ऊंचाई-संतुलित है या नहीं

    एक बाइनरी ट्री ऊंचाई-संतुलित (height-balanced) होता है यदि प्रत्येक नोड के लिए उसके बाएं और दाएं सबट्री की ऊंचाई का निरपेक्ष अंतर 0 या 1 हो। दिए गए ट्री के लिए आउटपुट true (1) है। समाधान दृष्टिकोण (पोस्ट-ऑर्डर DFS) एक ग्लोबल फ्लैग ret = true रखें। dfs(node) फंक्शन नोड की ऊंचाई वापस करता है: यदि न

  1. C++ प्रोग्राम: जांचें कि क्या एक ग्राफ दृढ़ता से जुड़ा हुआ है या नहीं C++ प्रोग्राम: जांचें कि क्या एक ग्राफ दृढ़ता से जुड़ा हुआ है या नहीं

    निर्देशित ग्राफ में घटकों को दृढ़ता से जुड़ा हुआ कहा जाता है, जब एक घटक में वर्टेक्स के प्रत्येक जोड़े के बीच एक पथ होता है। इस एल्गोरिदम को हल करने के लिए, पहले, प्रत्येक वर्टेक्स का फिनिश टाइम प्राप्त करने के लिए DFS एल्गोरिदम का उपयोग किया जाता है, अब ट्रांसपोज़्ड ग्राफ का फिनिश टाइम ढूंढें, फि

  1. - जावा प्रोग्राम: प्राइम नंबर चेक करना

    इस लेख में हम समझेंगे कि किसी संख्या को प्राइम नंबर है या नहीं, यह कैसे चेक किया जाता है। प्राइम नंबर वे विशेष संख्याएं होती हैं जिनके केवल दो फैक्टर होते हैं: 1 और स्वयं। ये किसी अन्य संख्या से विभाज्य नहीं होतीं। उदाहरण: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47... नोट: 2 एकमात्र इव