# Check if a number can be represented as sum of non zero powers of 2

Given an integer **N**, the task is to check whether **N** can be represented as the sum of powers of **2** where all the powers are > 0 i.e. **2 ^{0}** cannot contribute to the sum.

**Examples:**

Input:N = 10

Output:1

2^{3}+ 2^{1}= 10

Input:N = 9

Output:0

**Approach:** There are two cases:

- When
**N**is even then it can always be represented as the sum of powers of**2**when**power > 0**. - When
**N**is odd then it can never be represented as the sum of powers of 2 if**2**is not included in the sum.^{0}

Below is the implementation of the above approach:

## C++

`// C++ implementation of the approach ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `// Function that return true if n ` `// can be represented as the sum ` `// of powers of 2 without using 2^0 ` `bool` `isSumOfPowersOfTwo(` `int` `n) ` `{ ` ` ` `if` `(n % 2 == 1) ` ` ` `return` `false` `; ` ` ` `else` ` ` `return` `true` `; ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `int` `n = 10; ` ` ` `if` `(isSumOfPowersOfTwo(n)) ` ` ` `cout << ` `"Yes"` `; ` ` ` `else` ` ` `cout << ` `"No"` `; ` ` ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java implementation of the approach ` `class` `GFG { ` ` ` ` ` `// Function that return true if n ` ` ` `// can be represented as the sum ` ` ` `// of powers of 2 without using 2^0 ` ` ` `static` `boolean isSumOfPowersOfTwo(` `int` `n) ` ` ` `{ ` ` ` `if` `(n % 2 == 1) ` ` ` `return` `false` `; ` ` ` `else` ` ` `return` `true` `; ` ` ` `} ` ` ` ` ` `// Driver code ` ` ` `public` `static` `void` `main(String args[]) ` ` ` `{ ` ` ` `int` `n = 10; ` ` ` `if` `(isSumOfPowersOfTwo(n)) ` ` ` `System.out.print(` `"Yes"` `); ` ` ` `else` ` ` `System.out.print(` `"No"` `); ` ` ` `} ` `} ` |

*chevron_right*

*filter_none*

## Python3

`# Python3 implementation of the approach ` ` ` `# Function that return true if n ` `# can be represented as the sum ` `# of powers of 2 without using 2^0 ` `def` `isSumOfPowersOfTwo(n): ` ` ` `if` `n ` `%` `2` `=` `=` `1` `: ` ` ` `return` `False` ` ` `else` `: ` ` ` `return` `True` ` ` `# Driver code ` `n ` `=` `10` `if` `isSumOfPowersOfTwo(n): ` ` ` `print` `(` `"Yes"` `) ` `else` `: ` ` ` `print` `(` `"No"` `) ` ` ` `# This code is contributed ` `# by Shrikant13 ` |

*chevron_right*

*filter_none*

## C#

`// C# implementation of the approach ` `using` `System; ` ` ` `class` `GFG { ` ` ` ` ` `// Function that return true if n ` ` ` `// can be represented as the sum ` ` ` `// of powers of 2 without using 2^0 ` ` ` `static` `bool` `isSumOfPowersOfTwo(` `int` `n) ` ` ` `{ ` ` ` `if` `(n % 2 == 1) ` ` ` `return` `false` `; ` ` ` `else` ` ` `return` `true` `; ` ` ` `} ` ` ` ` ` `// Driver code ` ` ` `public` `static` `void` `Main() ` ` ` `{ ` ` ` `int` `n = 10; ` ` ` `if` `(isSumOfPowersOfTwo(n)) ` ` ` `Console.WriteLine(` `"Yes"` `); ` ` ` `else` ` ` `Console.WriteLine(` `"No"` `); ` ` ` `} ` `} ` |

*chevron_right*

*filter_none*

## PHP

**Output:**

Yes

**Time Complexity:** O(1)

## Recommended Posts:

- Check whether a number can be represented by sum of two squares
- Check if given number can be represented as sum of two great numbers
- Check if a given number can be represented in given a no. of digits in any base
- Check if a number can be represented as a sum of 2 triangular numbers
- Check whether a number can be represented as sum of K distinct positive integers
- Check if N can be represented as sum of integers chosen from set {A, B}
- Minimum number of given powers of 2 required to represent a number
- Representation of a number in powers of other
- Balance pans using given weights that are powers of a number
- Number of triangles possible with given lengths of sticks which are powers of 2
- Form a number using corner digits of powers
- Sum of largest divisible powers of p (a prime number) in a range
- Sum of first N natural numbers by taking powers of 2 as negative number
- Sum of two numbers where one number is represented as array of digits
- Divide large number represented as string

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.