> For the complete documentation index, see [llms.txt](https://anton-veselskyi.gitbook.io/codding-problems-solutions/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://anton-veselskyi.gitbook.io/codding-problems-solutions/leetcode/easy/power-of-four.md).

# Power of Four

## [Power of Four](https://leetcode.com/problems/power-of-four)

Given an integer `n`, return *`true` if it is a power of four. Otherwise, return `false`*.

An integer `n` is a power of four, if there exists an integer `x` such that `n == 4x`.

**Example 1:**

```
Input: n = 16
Output: true
```

**Example 2:**

```
Input: n = 5
Output: false
```

**Example 3:**

```
Input: n = 1
Output: true
```

**Constraints:**

* `-231 <= n <= 231 - 1`

&#x20; **Follow up:** Could you solve it without loops/recursion?

## Solutions

### 🧠 Cpp

```cpp
#include <stdint.h>

class Solution
{
public:
    bool isPowerOfFour(unsigned num) 
    {
      return (__builtin_popcount(num) == 1) && (num & 0b01010101010101010101010101010101);
        // return num > 0 && (num & (num - 1)) == 0 && num & 0x55555555;
//         if (num == 1) // case for power of 0
//             return true;

//         for (uint32_t i = 1; (i <<= 2);)
//             if (i == num)
//                 return true;
//         return false;
    }
};
```
