题目
给定一个整数,写一个函数来判断它是否是3的幂次方。如果是,返回True;否则,返回false。
整数n是3的幂次方需满足:存在整数x使得 n = 3^x。

思路
思路一:暴力法
循环的写法
class Solution:def isPowerOfThree(self, n: int) -> bool:if n == 0: return Falsewhile n != 1:if n % 3 != 0:return Falseelse:n //= 3return True
递归写法
class Solution:def isPowerOfThree(self, n: int) -> bool:if n < 1: return Falseif n == 1: return Trueelse: return self.isPowerOfThree(n / 3)
代码优化
class Solution:def isPowerOfThree(self, n: int) -> bool:if n < 1: return Falsewhile n % 3 == 0:n //= 3return n == 1

class Solution:def isPowerOfThree(self, n: int) -> bool:return n > 0 and 1162261467 % n == 0
