जांचें कि दी गई संख्या 2 की घात है या नहीं। पहले नीचे जांचें कि कौन सी संख्याएं 2 की घात हैं या नहीं। यह कोड जांचता है कि संख्या विषम है या नहीं और फिर इसे समवर्ती रूप से विभाजित करता है जब तक कि यह 0 या विषम न हो जाए। यदि यह 0 हो जाता है तो यह 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 को 2 से बार-बार विभाजित करें यदि N एक सम संख्या है। यदि यह 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; }