Kiểm tra một số có phải là lũy thừa của 8 hay không. Ví dụ 4096 là lũy thừa của 8.
Cách đơn giản: tính log₈(n). Nếu kết quả là số nguyên thì n là lũy thừa của 8. Dùng hàm trunc để lấy phần nguyên so sánh.
Ví dụ
#include <iostream>
#include <cmath>
using namespace std;
bool isPowerOfEight(int n) {
double val = log(n)/log(8);
return (val - trunc(val) < 0.000001);
}
int main() {
int number = 4096;
if(isPowerOfEight(number)){
cout << number << " is power of 8";
} else {
cout << number << " is not power of 8";
}
}
Kết quả
4096 is power of 8