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?
Thoughts
because 3 is a prime number. Detection of power of 3 can be converted to whether 3^19 = 1162261467 (largest power of 3 you can get for int value in a 32 bit machine) can divide the number n.
class Solution(object):
def isPowerOfThree(self, n):
"""
:type n: int
:rtype: bool
"""
return n > 0 and pow(3,19,n)== 0