समस्या विवरण
एक धनात्मक संख्या दी गई है, जांचें कि क्या यह 2 की घात है।
उदाहरण
इनपुट: 1024
आउटपुट: True
एल्गोरिदम
- जब तक
n > 1:n = n / 2 - अंत में
n == 1जांचें
पायथन कार्यान्वयन
class Solution:
def solve(self, n):
while n > 1:
n /= 2
return n == 1
ob = Solution()
print(ob.solve(1024))
इनपुट
1024
आउटपुट
True
बेहतर तरीका (बिटवाइज़)
def is_power_of_two(n):
return n > 0 and (n & (n - 1)) == 0
यह O(1) समय में काम करता है।