Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Kiểm tra số nguyên có phải lũy thừa của 3 trong C++


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