Power of Three
Easy
MathRecursion
Problem
Return true iff n is a power of three.
Example 1
Input: 27
Output: true
Example 2
Input: 0
Output: false
Example 3
Input: 9
Output: true
Example 4
Input: 45
Output: false
Constraints
- -2³¹ ≤ n ≤ 2³¹−1
Approach — Core Patterns
This is a Core Patterns problem. The idea: pick the data structure best matched to the constraints and solve it in one clean pass. Work through the reference code below line by line, then re-derive it yourself in the editor — that's how the pattern sticks.
Complexity: see the walkthrough below.
Solution code
Python
class Solution:
def isPowerOfThree(self, n):
if n < 1:
return False
while n % 3 == 0:
n //= 3
return n == 1
Java
class Solution {
public boolean isPowerOfThree(int n) {
if (n <= 0) return false;
while (n % 3 == 0) n /= 3;
return n == 1;
}
}
Practice it
Reading a solution isn't the same as being able to write it under pressure. Open this problem in the in-browser editor, hide the solution, and solve it from scratch — your code runs against real test cases instantly.
Solve Power of Three interactively → ← All solutions