এই অংশে, আমরা দেখব, একটি সংখ্যা 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