由一道LeetCode題演變而來
思路:
當然可以通過循環來實現,從1開始乘,每次乘3,即可。
這裏有個巧妙的方法,由於3是質數,32位有符號整數int中最大的3的冪是1162261467,
即可根據1162261467 % n == 0來判斷。
類似5 7 11 這樣的質數也同理(2除外,2的冪可以通過n&n - 1 == 0 來判斷 )。
bool isPowerOfThree(int n) {
if (n < 1)
return false;
return 1162261467 % n == 0;
}