Trong bài toán này, chúng ta được cho một số nguyên N. Nhiệm vụ là kiểm tra xem số nguyên có phải là lũy thừa của 3 hay không.
Ví dụ minh họa
Input: N = 729 Output: Yes
Giải thích: 36 = 729
Phương pháp giải
Kiểm tra xem số N có chia hết 1162261467 (là 319, lũy thừa lớn nhất của 3 trong int 32-bit) hay không. Nếu chia hết thì N là lũy thừa của 3.
Ví dụ chương trình
#include <iostream>
using namespace std;
bool isPowerOf3(int n){
if (n <= 0) return false;
return 1162261467 % n == 0;
}
int main(){
int n = 27;
if (isPowerOf3(n))
cout << "Số này là lũy thừa của 3";
else
cout << "Số này không phải lũy thừa của 3";
return 0;
}
Kết quả
Số này là lũy thừa của 3