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

results matching ""

    No results matching ""