एक विनम्र संख्या एक धनात्मक संख्या है जिसे 2 या अधिक लगातार धनात्मक संख्याओं के योग के रूप में लिखा जा सकता है।
विनम्र संख्याओं की श्रृंखला हैं
3 5 6 7 9 10 11 12 13 14...
nवीं विनम्र संख्या ढूंढने के लिए एक सूत्र मौजूद है। सूत्र है n + log2(n + log2(n))। डिफ़ॉल्ट लॉग आधार e के साथ गणना करता है। हमें आधार 2 का उपयोग करके गणना करने की आवश्यकता है। डिफ़ॉल्ट लॉग परिणाम को log(2) से विभाजित करें ताकि आधार e के साथ लॉग का मान प्राप्त हो सके।
एल्गोरिदम
- nवीं विनम्र संख्या का एल्गोरिदम सीधा है।
- संख्या N आरंभ करें।
- nवीं विनम्र संख्या की गणना के लिए उपरोक्त सूत्र का उपयोग करें।
- nवीं विनम्र संख्या की गणना करने से पहले n के मान को 1 से बढ़ाना सुनिश्चित करें।
कार्यान्वयन
निम्नलिखित C++ में उपरोक्त एल्गोरिदम का कार्यान्वयन है:
#include <bits/stdc++.h>
using namespace std;
double getNthPoliteNumber(double n) {
n += 1;
return n + (log((n + (log(n) / log(2.0))))) / log(2.0);
}
int main() {
double n = 10;
cout << (int)getNthPoliteNumber(n) << endl;
return 0;
}
आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्नलिखित परिणाम मिलेगा।
14