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

Chương trình C++ kiểm tra số có phải lũy thừa của 2


Kiểm tra số cho trước có phải lũy thừa của 2 hay không. Các số là lũy thừa của 2:

2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 ... 
2² = 4, 2⁵ = 32, 2¹⁰ = 1024

Ví dụ

Input: 8 
Output: Số là lũy thừa của 2

Giải thích

Cách đơn giản: lấy log cơ số 2 của số, nếu kết quả là số nguyên thì số đó là lũy thừa của 2.

Cách khác: liên tục chia N cho 2 nếu N chẵn. Nếu kết thúc tại 1 thì N là lũy thừa của 2.

Ví dụ mã C++

#include <iostream> 
using namespace std; 

int main() { 
    int n = 8; 
    if (n > 0) { 
        while (n % 2 == 0) { 
            n /= 2; 
        } 
        if (n == 1) { 
            cout << "Số là lũy thừa của 2" << endl; 
        } 
    } 
    if (n == 0 || n != 1) { 
        cout << "Số không phải lũy thừa của 2" << endl; 
    } 
    return 0; 
}