给定一个整数,写一个函数来判断它是否是 3 的幂次方。
示例 1:
输入: 27
输出: true
示例 2:
输入: 0
输出: false
示例 3:
输入: 9
输出: true
示例 4:
输入: 45
输出: false
进阶:
你能不使用循环或者递归来完成本题吗?
import math
class Solution:
# 直接用log会出现计算误差,所以换底,但感觉误差总是存在,循环好一点
def isPowerOfThree(self, n: int) -> bool:
if n <= 0 or math.ceil(math.log10(n)/math.log10(3)) != math.log10(n)/math.log10(3):
return False
else:
return True