मान लीजिए हमारे पास एक संख्या n है। हमें जांचना है कि हम इसे a^b के रूप में व्यक्त कर सकते हैं या नहीं।
तो, यदि इनपुट 125 जैसा है, तो आउटपुट True होगा क्योंकि 125 = 5^3, इसलिए a = 5 और b = 3।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
- यदि num 1 के समान है, तो:
- true लौटाएं
- i := 2 से आरंभ करें, जब i * i <= num, अपडेट करें (i को 1 से बढ़ाएं), करें:
- val := log(num) / log(i)
- यदि val - val का पूर्णांक भाग लगभग 0 है, तो:
- true लौटाएं
- false लौटाएं
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण
#include#include using namespace std; bool solve(int num) { if (num == 1) return true; for (int i = 2; i * i <= num; i++) { double val = log(num) / log(i); if ((val - (int)val) < 0.00000001) return true; } return false; } int main() { int n = 125; cout << solve(n); }
इनपुट
125
आउटपुट
1