Giả sử chúng ta có một số n. Chúng tôi phải kiểm tra xem chúng tôi có thể thực hiện nó giống như a ^ b hay không.
Vì vậy, nếu đầu vào là 125, thì đầu ra sẽ Đúng là 125 =5 ^ 3, do đó a =5 và b =3
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- nếu num giống 1, thì:
- trả về true
- để khởi tạo i:=2, khi i * i <=num, cập nhật (tăng i lên 1), thực hiện:
- val:=log (num) / log (i)
- nếu val - phần nguyên của val gần 0, thì:
- trả về true
- trả về false
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
#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); }
Đầu vào
125
Đầu ra
1