মান লেন, আমাদের কাছে একটি সংখ্যা n আছে। আমাদের যাচাই করতে হবে এটি a^b আকারে প্রকাশ করা যায় কিনা।
যেমন, ইনপুট হলে 125, তবে আউটপুট হবে True কারণ 125 = 5^3, তাই a = 5 এবং b = 3।
এটি সমাধান করতে আমরা নিচের ধাপগুলো অনুসরণ করব:
- যদি num ১-এর সমান হয়, তবে true রিটার্ন করুন।
- i := 2 থেকে শুরু করে i * i <= num পর্যন্ত লুপ চালান:
- val := log(num) / log(i)
- যদি val - val-এর ইন্টিজার পার্ট প্রায় ০ হয়, তবে 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