Ở đây chúng ta sẽ kiểm tra xem chúng ta có thể biểu diễn một số như ab hay không. Giả sử có số 125. Số này có thể được biểu thị là 53. Một số khác 91 không thể được biểu diễn dưới dạng lũy thừa của một số giá trị số nguyên.
Thuật toán
isRepresentPower(num): Begin if num = 1, then return true for i := 2, i2 <= num, increase i by 1, do val := log(a)/log(i) if val – int(val) < 0.0000000001, then return true done return false End
Ví dụ
#include<iostream> #include<cmath> using namespace std; bool isRepresentPower(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 << (isRepresentPower(n) ? "Can be represented" : "Cannot be represented"); }
Đầu ra
Can be represented