'''

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?
'''


# 1 Basic method
class Solution:
    def isPowerOfThree(self, n: int) -> bool:
        if n <= 0: return False
        while n == int(n):
            if n == 1: return True
            n /= 3
        return False


# 2 log
from math import log

class Solution:
    def isPowerOfThree(self, n: int) -> bool:
        if n <= 0: return False
        log_3 = log(n) / log(3)
        return log_3 == int(log_3)