目录

0326:3 的幂

力扣第 326 题

题目

给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false

整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x

示例 1:

输入:n = 27
输出:true

示例 2:

输入:n = 0
输出:false

示例 3:

输入:n = 9
输出:true

示例 4:

输入:n = 45
输出:false

提示:

  • -231 <= n <= 231 - 1

进阶:你能不使用循环或者递归来完成本题吗?

分析

要求不用循环递归,考虑用数学

  • n 是 3 的幂等价于 n 被范围内最大的 3 的幂数整除

解答

1
2
3
class Solution:
    def isPowerOfThree(self, n: int) -> bool:
        return n>0 and pow(3,21)%n==0

80 ms