Power of Three
Question
Given an integer, write a function to determine if it 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
Follow up: Could you do it without using any loop / recursion?
Solution
My first thought is to find the power of three around n. Then I need to find log10(n), so I can know the approximate power of three, because \(3 \times 3 = 9 \approx 10\). After realizing I need to use log, I think \(\log_3\) may be more direct.
def isPowerOfThree(n):
import math
return math.log(n, 3) == int(math.log(n, 3))
isPowerOfThree(6)
## False
Summary
What I learned, for \(\log\) in Python, I need to import package math
.