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

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

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

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

अगर एन 1/5 =ए तो, a*a*a*a*a =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++ में मितव्ययी संख्या

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

  1. सी++ पेंटाटोप नंबर

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

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

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