# 231. Power of Two

Given an integer, write a function to determine if it is a power of two.

Example 1:

Input: 1
Output: true 
Explanation: 20 = 1

Example 2:

Input: 16
Output: true
Explanation: 24 = 16

Example 3:

Input: 218
Output: false

# Solution

Approach 1: Check if all factors of a number is two.

Approach 2: Bit manipulation.

# Code (Python)

Approach 1:

Approach 2:

# Code (C++)

Approach 1:

class Solution {
public:
    bool isPowerOfTwo(int n) {
        if (n == 1) return true;
        while (n > 2)
        {
            if (n % 2 != 0)
                return false;
            int s = sqrt(n);
            if (s * s == n)
                n = s;
            else
                n = n / 2;
        }
        return n == 2;
    }
};

Approach 2:

class Solution {
public:
    bool isPowerOfTwo(int n) {
        return n > 0 && (n & (n - 1)) == 0;
    }
};

class Solution {
public:
    bool isPowerOfTwo(int n) {
        return n > 0 && (n - (n & -n)) == 0;
    }
};