#define METHOD 2
#include <solution/326.h>

bool isPowerOfThree(int n)
{
#if METHOD == 1
    if (n <= 0)
        return false;

    while (n != 1)
    {
        if (n % 3 != 0)
            return false;
        n /= 3;
    }

    return true;
#elif METHOD == 2
    // 在题目给定的 32 位有符号整数的范围内，最大的 3 的幂为 3^19 = 1162261467。
    // 我们只需要判断 n 是否是 3^19 的约数即可。
    return n > 0 && 1162261467 % n == 0;
#endif
}
