# 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

`<?php ` `// PHP implementation of the approach ` ` ` `// Function that return true if n ` `// can be represented as the sum ` `// of powers of 2 without using 2^0 ` `function` `isSumOfPowersOfTwo(` `$n` `) ` `{ ` ` ` `if` `(` `$n` `% 2 == 1) ` ` ` `return` `false; ` ` ` `else` ` ` `return` `true; ` `} ` ` ` `// Driver code ` `$n` `= 10; ` `if` `(isSumOfPowersOfTwo(` `$n` `)) ` ` ` `echo` `(` `"Yes"` `); ` `else` ` ` `echo` `(` `"No"` `); ` ` ` `// This code is contributed ` `// by Code_Mech ` `?> ` |

*chevron_right*

*filter_none*

**Output:**

Yes

**Time Complexity:** O(1)

## Recommended Posts:

- Check whether a number can be represented by sum of two squares
- 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 if given number can be represented as sum of two great 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
- Finding powers of any number P in N!
- Representation of a number in powers of other
- Balance pans using given weights that are powers of a number
- Form a number using corner digits of powers
- Number of triangles possible with given lengths of sticks which are powers of 2
- 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
- Count of numbers whose sum of increasing powers of digits is equal to the number itself

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.