मान लीजिए कि हमारे पास एक संख्या n है। हमें यह जांचना होगा कि हम इसे a^b की तरह व्यक्त कर सकते हैं या नहीं।
इसलिए, यदि इनपुट 125 जैसा है, तो आउटपुट सही होगा जैसे 125 =5^3, इसलिए a =5 और b =3
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- यदि संख्या 1 के समान है, तो:
- सही लौटें
- इनिशियलाइज़ i :=2 के लिए, जब i * i <=num, अपडेट (i 1 से बढ़ाएँ), करें:
- वैल:=लॉग (संख्या) / लॉग (i)
- यदि वैल का वैल - पूर्णांक भाग लगभग 0 है, तो:
- सही लौटें
- झूठी वापसी
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
#include<iostream> #include<cmath> 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