# Check if n is divisible by power of 2 without using arithmetic operators

Given two positive integers n and m. The problem is to check whether n is divisible by 2m or not without using arithmetic operators.

Examples:

```Input : n = 8, m = 2
Output : Yes

Input : n = 14, m = 3
Output : No
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: If a number is divisible by 2 then it has its least significant bit (LSB) set to 0, if divisible by 4 then two LSB’s set to 0, if by 8 then three LSB’s set to 0 and so on. Keeping this in mind, a number n is divisible by 2m if (n & ((1 << m) – 1)) is equal to 0 else not.

## C++

 `// C++ implementation to chech whether n ` `// is divisible by pow(2, m) ` `#include ` ` `  `using` `namespace` `std; ` ` `  `// function to chech whether n ` `// is divisible by pow(2, m) ` `bool` `isDivBy2PowerM(unsigned ``int` `n, ` `                    ``unsigned ``int` `m) ` `{ ` `    ``// if expression results to 0, then ` `    ``// n is divisible by pow(2, m) ` `    ``if` `((n & ((1 << m) - 1)) == 0) ` `        ``return` `true``; ` ` `  `    ``// n is not divisible ` `    ``return` `false``; ` `} ` ` `  `// Driver program to test above ` `int` `main() ` `{ ` `    ``unsigned ``int` `n = 8, m = 2; ` `    ``if` `(isDivBy2PowerM(n, m)) ` `        ``cout << ``"Yes"``; ` `    ``else` `        ``cout << ``"No"``; ` `    ``return` `0; ` `} `

## Java

 `// JAVA Code for Check if n is divisible   ` `// by power of 2 without using arithmetic  ` `// operators ` `import` `java.util.*; ` ` `  `class` `GFG { ` `     `  `    ``// function to chech whether n ` `    ``// is divisible by pow(2, m) ` `    ``static` `boolean` `isDivBy2PowerM(``int` `n, ` `                                    ``int` `m) ` `    ``{ ` `        ``// if expression results to 0, then ` `        ``// n is divisible by pow(2, m) ` `        ``if` `((n & ((``1` `<< m) - ``1``)) == ``0``) ` `            ``return` `true``; ` `      `  `        ``// n is not divisible ` `        ``return` `false``; ` `    ``} ` `     `  `    ``/* Driver program to test above function */` `    ``public` `static` `void` `main(String[] args)  ` `    ``{ ` `            ``int` `n = ``8``, m = ``2``; ` `             `  `            ``if` `(isDivBy2PowerM(n, m)) ` `                ``System.out.println(``"Yes"``); ` `            ``else` `                ``System.out.println(``"No"``); ` `    ``} ` `} ` ` `  `// This code is contributed by Arnav Kr. Mandal. `

## Python3

 `# Python3 implementation to chech  ` `# whether n is divisible by pow(2, m) ` ` `  `# function to chech whether n ` `# is divisible by pow(2, m) ` `def` `isDivBy2PowerM (n, m): ` `     `  `    ``# if expression results to 0, then ` `    ``# n is divisible by pow(2, m) ` `    ``if` `(n & ((``1` `<< m) ``-` `1``)) ``=``=` `0``: ` `        ``return` `True` `         `  `    ``# n is not divisible ` `    ``return` `False` ` `  `# Driver program to test above ` `n ``=` `8` `m ``=` `2` `if` `isDivBy2PowerM(n, m): ` `    ``print``(``"Yes"``) ` `else``: ` `    ``print``( ``"No"``) ` `     `  `# This code is contributed by "Sharad_Bhardwaj". `

## C#

 `// C# Code for Check if n is divisible ` `// by power of 2 without using arithmetic ` `// operators ` `using` `System; ` ` `  `class` `GFG { ` ` `  `    ``// function to chech whether n ` `    ``// is divisible by pow(2, m) ` `    ``static` `bool` `isDivBy2PowerM(``int` `n, ``int` `m) ` `    ``{ ` `        ``// if expression results to 0, then ` `        ``// n is divisible by pow(2, m) ` `        ``if` `((n & ((1 << m) - 1)) == 0) ` `            ``return` `true``; ` ` `  `        ``// n is not divisible ` `        ``return` `false``; ` `    ``} ` ` `  `    ``/* Driver program to test above function */` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int` `n = 8, m = 2; ` ` `  `        ``if` `(isDivBy2PowerM(n, m)) ` `            ``Console.Write(``"Yes"``); ` `        ``else` `            ``Console.Write(``"No"``); ` `    ``} ` `} ` ` `  `// This code is contributed by Sam007 `

## PHP

 ` `

Output:

```Yes
```

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

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.

Improved By : jit_t

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.