# 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);
};