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

C++ में संख्या का पांचवां मूल ढूंढें


इस समस्या में, हमें एक संख्या N दी गई है। हमारा कार्य संख्या के पांचवें मूल का फ्लोर मान ढूंढना है।

पांचवां मूल एक संख्या का वह संख्या है जिसे स्वयं से 5 बार गुणा करने पर वह संख्या प्राप्त होती है।

यदि N1/5 = a तो, a*a*a*a*a = N।

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

इनपुट: N = 325

आउटपुट: 3

व्याख्या:

325 का पांचवां मूल 3.179 है जिसका फ्लोर मान 3 है।

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

समस्या का एक सरल समाधान 1 से n तक ट्रैवर्स करना है। और वह संख्या ढूंढना जिसे स्वयं से पांच बार गुणा करने पर संख्या प्राप्त होती है।

यहां, सटीक मान नहीं मिल सकता क्योंकि संख्याएं हमेशा पूर्ण पांचवीं घात नहीं होंगी। इसलिए, हम पहला मान ढूंढेंगे जो पांचवीं घात को n से अधिक बनाता है और फिर फ्लोर पांचवां मूल प्राप्त करने के लिए मान -1 वापस करेंगे।

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला प्रोग्राम,

उदाहरण

#include<iostream>
using namespace std;

int calcFifthRoot(int n) {
    if (n == 0 || n == 1)
        return n;
    int a = 0;
    for(a = 1; a*a*a*a*a < n ; a++){
    }
    return (a - 1);
}

int main() {
    int n = 325;
    cout<<"The Floor of fifth root of "<<n<<" is "<<calcFifthRoot(n);
    return 0;
}

आउटपुट

The Floor of fifth root of 325 is 3

यह एल्गोरिदम अच्छा है लेकिन समस्या का एक अधिक आशाजनक समाधान हो सकता है। यह खोज एल्गोरिदम को अपडेट करके और संख्या के पांचवें मूल की खोज के लिए बाइनरी सर्च एल्गोरिदम का उपयोग करके किया जा सकता है।

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला प्रोग्राम,

उदाहरण

#include<iostream>
using namespace std;

int calcFifthRoot(int n) {
    if (n == 0 || n == 1)
        return n;
    int start = 1, end = n, root = 0;
    while (start <= end)
    {
        int a = (start + end) / 2;
        long int apowfive = a*a*a*a*a;
        if (apowfive == n)
            return a;
        if (apowfive < n) {
            start = a + 1;
            root = a;
        }
        else
            end = a - 1;
    }
    return root;
}

int main() {
    int n = 250;
    cout<<"The floor of fifth root of "<<n<<" is "<<calcFifthRoot(n);
    return 0;
}

आउटपुट

The floor of fifth root of 250 is 3

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

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

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

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

  1. - C++ में डबल (या फ्लोट) के NaN होने की जांच कैसे करें?

    C++ में यह जांचने के लिए कि कोई फ्लोटिंग पॉइंट या डबल नंबर NaN (नॉट अ नंबर) है या नहीं, हम isnan() फंक्शन का उपयोग कर सकते हैं। isnan() फंक्शन cmath लाइब्रेरी में मौजूद है। यह फंक्शन C++ वर्जन 11 में पेश किया गया था। इसलिए C++11 से आगे, हम इस फंक्शन का उपयोग कर सकते हैं। उदाहरण #include <cmath&