VOOZH about

URL: https://www.geeksforgeeks.org/dsa/efficiently-check-whether-n-multiple-4-not/

⇱ Efficiently check whether n is a multiple of 4 or not - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Efficiently check whether n is a multiple of 4 or not

Last Updated : 15 Jul, 2022

Given a number n. The problem is to efficiently check whether n is a multiple of 4 or not without using arithmetic operators. 
Examples: 
 

Input : 16
Output : Yes

Input : 14
Output : No


 


Approach: A multiple of 4 always has 00 as its last two digits in its binary representation. We have to check whether the last two digits of n are unset or not.
How to check whether the last two bits are unset or not. 
If n & 3 == 0, then the last two bits are unset, else either both or one of them are set.
 
 

Output: 
 

Yes

Time Complexity : O(1)

Auxiliary Space: O(1)


Can we generalize above solution? 
Similarly we can check for other powers of 2. For example, a number n would be multiple of 8 if n & 7 is 0. In general we can say. 
 

// x must be a power of 2 for below
// logic to work
if (n & (x -1) == 0)
 n is a multiple of x
Else
 n is NOT a multiple of x


 


 

Comment
Article Tags: