> 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-two.md).

# Power of Two

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

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

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

**Example 1:**

```

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

**Example 2:**

```

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

**Example 3:**

```

Input: n = 3
Output: false
```

**Example 4:**

```

Input: n = 4
Output: true
```

**Example 5:**

```

Input: n = 5
Output: false
```

**Constraints:**

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

## Solutions

### 🧠 Cpp

```cpp
class Solution
{
public:
    bool isPowerOfTwo(int n)
    {
              return (__builtin_popcount(n) == 1) && (n & 0x7FFFFFFF);
    }
};
```
