Power of Three

LeetCode

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.

Zhe Lu
Zhe Lu
Graduate student & Research assistant

A graduate student pursuing the knowledge of data science.