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;
}