Why is wrong with the code

class Solution {
public:
bool isPowerOfFour(int n) {
if(n==1)
return true;
if(n<=0)
return false;
if((n&(n-1)==0)&&((n-1)%3)==0){
return true;
}

return false;

}
};
why this returns false on input n=16?

Are you sure with the logic you have written? It doesn’t look convincing to me.
My style of writing:

bool isPowerOfFour(int n) {
    while(n%4 == 0)
        n /= 4;
    return (n == 1);
}

Time Complexity: O(log_{4} N)

You are Probably missing set of Opening and Closing pairs “()”.

if(((n&(n-1))==0)&&(((n-1)%3)==0))

This returned true for n = 16.

The question was to do it without loops/recursion and after some searcing on gfg i figured out this method.