23 lines
480 B
C
23 lines
480 B
C
#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
|
|
} |