यहां हम एक प्रोग्राम देखेंगे, यदि एक नंबर दिया गया है, तो दूसरा मान k भी दिया गया है, हमें यह जांचना है कि संख्या k की शक्ति है या नहीं। लेकिन हमें इस समस्या को हल करने के लिए आधार बदलने का तरीका अपनाना होगा। मान लीजिए कि एक संख्या 27 है, और k =3 है, तो आधार बदलने की विधि से, 27 10003 होगा। यहाँ आधार बदलने के बाद यदि अंक 1 की केवल एक घटना है, और अन्य 0 हैं, तो संख्या k की शक्ति है। ।
इस समस्या को हल करने के लिए, हम इन चरणों का पालन करेंगे।
कदम -
- ध्वज परिभाषित करें:=झूठा
- संख्या> 0 होने पर, चरण 3 से 6 तक दोहराएं
- अंक खोजें:=संख्या मॉड k
- यदि अंक> 1 है, तो झूठी वापसी करें
- अन्यथा जब अंक 1 है, तो यदि ध्वज सत्य है, तो झूठी वापसी करें, अन्यथा ध्वजांकित करें:=सत्य।
- सेट नंबर:=नंबर / के.
- सही लौटें
उदाहरण
#include <iostream> #include <cmath> using namespace std; bool isPowerOfK(int num, int k) { bool flag = false; while (num > 0) { int digit = num % k; //get current digit in base k if (digit > 1) //if the digit is not 0 or 1, then it is not power of k return false; if (digit == 1) { if (flag) return false; flag = true; } num /= k; } return true; } int main() { int number = 27, K = 3; if(isPowerOfK(number, K)){ cout << number << " is power of " << K; } else { cout << number << " is not power of " << K; } }
आउटपुट
27 is power of 3