Given an integer, write a function to determine if it is a power of three.
Follow up:
Could you do it without using any loop / recursion?
解法一:使用循环
public class Solution {
public boolean isPowerOfThree(int n) {
if(n<=0)
return false;
while(n!=1){
if(n%3!=0)
return false;
n/=3;
}
return true;
}
}
解法二:3^19是int范围内最大的3的幂,那么 3^19可以被任何3的幂整除。
public class Solution {
public boolean isPowerOfThree(int n) {
return (n>0&&Math.pow(3,19)%n==0);
}
}