题目大意:判断整数是否是3的幂次方
分析:整数限制。3的幂次方在int范围内最大的是1162261467,因为log3(INT_MAX)=19.56,3^19=1162261467。由于3是质数,所以1162261467的除数都是3的幂次方,也就是1162261467除以3余数应为0。所以3的幂次方满足:1162261467 % num = 0。
代码:
class Solution {
public:
bool isPowerOfThree(int n) {
return n > 0 && 1162261467 % n == 0;
}
};