一、题目
判断一个整数n是否是3的幂次
二、思路
1. 循环法。n如果能被3整除,则继续整除,否则返回False。
2. 数学法。不同于2的幂次,无法使用按位与进行判断。使用log计算也存在精度问题,无法实现。这里可以使用3^19的因数进行判断。
三、题解
1. 循环法
class Solution:def isPowerOfThree(self, n: int) -> bool:while n > 2:if n%3 != 0:return Falsen //= 3return n == 1
2. 数学法
class Solution:
def isPowerOfThree(self, n: int) -> bool:
return n > 0 and (3**19)%n == 0