326. Power of Three

Problem


Tags: Math, Recursion

Given an integer n, return true if it is a power of three. Otherwise, return false.

An integer n is a power of three, if there exists an integer x such that n == 3^x.

Example 1:

Input: n = 27
Output: true

Example 2:

Input: n = 0
Output: false

Example 3:

Input: n = 9
Output: true

Constraints:

  • -2^31 <= n <= 2^31 - 1

Follow up: Could you solve it without loops/recursion?

Code

C

// 326. Power of Three (11/27/53998)
// Runtime: 8 ms (93.06%) Memory: 6.42 MB (7.71%) 

bool isPowerOfThree(int n) {
    int64_t m = 3;
    
    while(m < n) {
        m *= 3;
    }
    
    return m == n || n == 1;
}