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

• Difficulty Level : Medium
• Last Updated : 26 May, 2022

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```

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 check whether n``// is divisible by pow(2, m)``#include ` `using` `namespace` `std;` `// function to check 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 check 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 check``# whether n is divisible by pow(2, m)` `# function to check 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 check 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

 ``

## Javascript

 ``

Output:

`Yes`

Time Complexity : O(1)

Auxiliary Space: O(1)

My Personal Notes arrow_drop_up