जांचें कि दी गई संख्या 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; }