Power of Four

easy bit manipulation math

Problem

Return true if n is a power of four. Solve it in O(1) — no loops or recursion.

Inputn = 16
Outputtrue
16 = 4² — its only set bit is at an even position.

def is_power_of_four(n):
    if n <= 0:
        return False
    if n & (n - 1):
        return False
    return (n & 0xAAAAAAAA) == 0
function isPowerOfFour(n) {
  if (n <= 0) return false;
  if ((n & (n - 1)) !== 0) return false;
  return (n & 0xAAAAAAAA) === 0;
}
class Solution {
    public boolean isPowerOfFour(int n) {
        if (n <= 0) return false;
        if ((n & (n - 1)) != 0) return false;
        return (n & 0xAAAAAAAA) == 0;
    }
}
bool isPowerOfFour(int n) {
    if (n <= 0) return false;
    if (n & (n - 1)) return false;
    return (n & 0xAAAAAAAA) == 0;
}
Time: O(1) Space: O(1)