समस्या
n यह निर्धारित करें कि क्या किसी पूर्णांक k ≥ 0 के लिए n = 2ᵏ है (जैसे 1, 2, 4, 8, …)।
is_power_of_two(n) को लागू करें।
इनपुट
n: जाँचने के लिए संख्या।
आउटपुट
यदि n दो का घात है तो true लौटाएँ।
सीमाएँ
-10¹⁸ ≤ n ≤ 10¹⁸
उदाहरण
इनपुट:
n = 64
अपेक्षित आउटपुट:
expected = True
इनपुट:
long long n = 64;
अपेक्षित आउटपुट:
bool expected = true;
इनपुट:
long n = 64;
अपेक्षित आउटपुट:
bool expected = true;
व्याख्या
64 = 2⁶।
इनपुट:
n = 12
अपेक्षित आउटपुट:
expected = False
इनपुट:
long long n = 12;
अपेक्षित आउटपुट:
bool expected = false;
इनपुट:
long n = 12;
अपेक्षित आउटपुट:
bool expected = false;
व्याख्या
12 = 4 × 3 में एक विषम गुणनखंड है, इसलिए यह दो का घात नहीं है।
कैसे हल करें
पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।
संकेत 1
Power of two का binary में exactly one bit set होता है.
संकेत 2
Bit-based test लगाने से पहले number positive होना चाहिए.
संकेत 3
Negative numbers और zero कभी powers of two नहीं होते.
अपेक्षित जटिलता
समय O(1), अतिरिक्त स्थान O(1)
संदर्भ
यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।