একটি প্রদত্ত সংখ্যা 2 এর শক্তি কিনা তা পরীক্ষা করুন। প্রথমে নীচে পরীক্ষা করুন কোন সংখ্যা দুটির শক্তি বা নয়। এই কোডটি সংখ্যাটি বিজোড় কিনা তা পরীক্ষা করে এবং তারপরে এটি 0 বা বিজোড় না হওয়া পর্যন্ত একই সাথে ভাগ করে। যদি এটি 0 হয়ে যায় তবে এটি একটি শক্তি 2 অন্যথায় এটি নয়৷
৷নম্বরের লগ নেওয়া একটি ভাল পছন্দ। যদি এটি একটি পূর্ণসংখ্যা হয়, তাহলে n হল 2 এর একটি শক্তি অন্যথায় নয়। যে সংখ্যার ঘাত 2:
2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 ... 22 = 4 25 = 32 210 = 1024
Input: 8 Output: Number is power of 2
ব্যাখ্যা
এর জন্য একটি সহজ পদ্ধতি হল বেস 2-এ সংখ্যাটির লগ নেওয়া এবং আপনি যদি একটি পূর্ণসংখ্যা পান তবে সংখ্যাটি 2 এর শক্তি।
N একটি জোড় সংখ্যা হলে N 2 দিয়ে বারবার ভাগ করলে। যদি এটি 1 এ শেষ হয় তাহলে N হল 2 এর শক্তি
উদাহরণ
#include <iostream> using namespace std; int main() { int n=8; if(n>0) { while(n%2 == 0) { n/=2; } if(n == 1) { cout<<"Number is power of 2"<<endl; } } if(n == 0 || n != 1) { cout<<"Number is not power of 2"<<endl; } return 0; }