class Solution:
def isPowerOfTwo(self, n: int) -> bool:
'''
通过 n > 0 且 n & (n - 1) == 0 即可判定是否满足
'''
return n > 0 and n & (n - 1) == 0
3 的幂
class Solution:
def isPowerOfThree(self, n: int) -> bool:
'''
我们不断地将 n 除以 3,直到 n=1
如果此过程中 n 无法被 3 整除,就说明 n 不是 3 的幂。
'''
while n and n % 3 == 0: n //= 3
return n == 1
4 的幂
class Solution:
def isPowerOfFour(self, n: int) -> bool:
'''
如果 n 是 4 的幂,那么 n 一定也是 2 的幂
如果 n 是 4 的幂,那么它可以表示成 4^x
的形式,我们可以发现它除以 3 的余数一定为 1
'''
return n > 0 and n & (n - 1) == 0 and n % 3 == 1