326. Power of Three (Easy)
https://leetcode.com/problems/power-of-three/
Given an integer, write a function to determine if it is a power of three.
Example 1:
Input: 27 Output: true
Example 2:
Input: 0 Output: false
Example 3:
Input: 9 Output: true
Example 4:
Input: 45 Output: false
Follow up:
Could you do it without using any loop / recursion?
Solutions
1.
class Solution {
// Solution without loop or recursion.
public boolean isPowerOfThree(int n) {
return n > 0 && 1162261467 % n == 0;
}
}
2.
class Solution {
// Strictly speaking, problem requires solution without loop or recursion and following is not legitimate.
public boolean isPowerOfThree(int n) {
if (n < 1) {
return false;
}
while (n % 3 == 0) {
n /= 3;
}
return n == 1;
}
}