Given two positive integers n and m. The problem is to check whether n is divisible by 2m or not without using arithmetic operators.
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.
- Program to find whether a no is power of two
- Write an Efficient Method to Check if a Number is Multiple of 3
- Smallest power of 2 greater than or equal to n
- Check for Integer Overflow
- Compute modulus division by a power-of-2-number
- Find whether a given number is a power of 4 or not
- Smallest of three integers without comparison operators
- Add two numbers without using arithmetic operators
- Bitwise right shift operators in Java
- Russian Peasant (Multiply two numbers using bitwise operators)
- Bitwise Operators in C/C++
- Check if a number is multiple of 9 using bitwise operators
- Check if binary representation of a number is palindrome
- Subtract two numbers without using arithmetic operators
- Calculate 7n/8 without using division and multiplication operators
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.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