एक विनम्र संख्या एक सकारात्मक संख्या है जिसे 2 या अधिक लगातार सकारात्मक संख्याओं के योग के रूप में लिखा जा सकता है।
विनम्र संख्याओं की श्रृंखला है
3 5 6 7 9 10 11 12 13 14...
n-वें पोलाइट संख्या ज्ञात करने के लिए एक सूत्र मौजूद है। सूत्र है n + log2 (एन + लॉग<उप>2उप> (एन))। डिफ़ॉल्ट लॉग आधार ई के साथ गणना करता है। हमें आधार 2 का उपयोग करके गणना करने की आवश्यकता है। आधार ई के साथ लॉग का मान प्राप्त करने के लिए डिफ़ॉल्ट लॉग परिणाम को लॉग (2) से विभाजित करें।
एल्गोरिदम
- एन-वें पोलाइट नंबर का एल्गोरिथम सीधा है।
- नंबर को इनिशियलाइज़ करें।
- 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