326.3 的幂:大幂整除

【LetMeFly】326.3 的幂:大幂整除

力扣题目链接:https://leetcode.cn/problems/power-of-three/

给定一个整数,写一个函数来判断它是否是 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的幂整除

题目有一行进阶小字说“你能不使用循环或者递归来完成本题吗?”,好一个挑衅(provocation,bushi),那就不递归或者循环了吧。

类似【LetMeFly】231.2 的幂:五种小方法判断的方法五,我们直接使用题目数据范围内最大的3的幂对n取模,看余数是否为0就好了。

如何求题目数据范围内最大的3的幂?打开python有:

1
2
3
4
5
6
>>> 3**20 > 2**31-1
True
>>> 3**19 > 2**31-1
False
>>> 3**19
1162261467

可知如果不大于$2^{31}-1$的正整数$n$是$3$的幂那么它一定能够被$1162261467$整除。

  • 时间复杂度$O(1)$
  • 空间复杂度$O(1)$

AC代码

C++

1
2
3
4
5
6
7
8
9
10
11
12
/*
* @Author: LetMeFly
* @Date: 2025-08-13 13:17:09
* @LastEditors: LetMeFly.xyz
* @LastEditTime: 2025-08-13 13:25:31
*/
class Solution {
public:
bool isPowerOfThree(int n) {
return n > 0 && !(1162261467 % n);
}
};

Python

1
2
3
4
5
6
7
8
9
'''
Author: LetMeFly
Date: 2025-08-13 13:17:09
LastEditors: LetMeFly.xyz
LastEditTime: 2025-08-13 13:24:54
'''
class Solution:
def isPowerOfThree(self, n: int) -> bool:
return n > 0 and not 1162261467 % n

Java

1
2
3
4
5
6
7
8
9
10
11
/*
* @Author: LetMeFly
* @Date: 2025-08-13 13:17:09
* @LastEditors: LetMeFly.xyz
* @LastEditTime: 2025-08-13 13:23:25
*/
class Solution {
public boolean isPowerOfThree(int n) {
return n > 0 && 1162261467 % n == 0;
}
}

Go

1
2
3
4
5
6
7
8
9
10
11
/*
* @Author: LetMeFly
* @Date: 2025-08-13 13:17:09
* @LastEditors: LetMeFly.xyz
* @LastEditTime: 2025-08-13 13:23:55
*/
package main

func isPowerOfThree(n int) bool {
return n > 0 && 1162261467 % n == 0
}

Rust

1
2
3
4
5
6
7
8
9
10
11
/*
* @Author: LetMeFly
* @Date: 2025-08-13 13:17:09
* @LastEditors: LetMeFly.xyz
* @LastEditTime: 2025-08-13 13:21:37
*/
impl Solution {
pub fn is_power_of_three(n: i32) -> bool {
n > 0 && 1162261467 % n == 0
}
}

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

千篇源码题解已开源


326.3 的幂:大幂整除
https://blog.letmefly.xyz/2025/08/13/LeetCode 0326.3的幂/
作者
发布于
2025年8月13日
许可协议