এই অংশে, আমরা দেখব, একটি সংখ্যা 8 এর শক্তি না হলে কিছু সহজ পদ্ধতি ব্যবহার করে। যদি 4096 এর মত একটি সংখ্যা থাকে, তাহলে প্রোগ্রামটি সত্য হবে, কারণ এটি 8 এর শক্তি।
কৌশলটি সহজ। আমরা log8(num) গণনা করব। যদি এটি একটি পূর্ণসংখ্যা হয়, তাহলে n হল 8 এর শক্তি। এখানে আমরা ডবল মানের নিকটতম পূর্ণসংখ্যা বের করতে tranc(n) ফাংশন ব্যবহার করব।
উদাহরণ
#include <iostream>
#include <cmath>
using namespace std;
bool isPowerOfEight(int n) {
double val = log(n)/log(8); //get log n to the base 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";
}
} আউটপুট
4096 is power of 8