# 326. Power of Three

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

Approach 1: Loop.

# Code (Python)

Approach 1:

# Code (C++)

Approach 1:

class Solution {
public:
    bool isPowerOfThree(int n) {
        while (n > 1 && n % 3 == 0)
            n = n / 3;
        return n == 1;
    }
};

class Solution {
public:
    bool isPowerOfThree(int n) {
        while (n > 1)
        {
            if (n % 3 != 0)
                return false;
            int s = sqrt(n);
            if (s * s != n)
                n = n / 3;
            else
                n = s;
        }
        return n == 1;
    }
};

# Code (Typescript)

Approach 1:

function isPowerOfThree(n: number): boolean {
    if (n <= 0) {
        return false;
    }
    while (n > 1) {
        n = n / 3;
    }
    return n === 1;
};

function isPowerOfThree(n: number): boolean {
    if (n === 1) {
        return true;
    }
    if ( n % 3 !== 0 || n < 1) {
        return false;
    }
    return isPowerOfThree(n / 3);
};