Given a number **N**, the task is to find the remainder when N is divided by 4 using Bitwise AND operator.

**Examples:**

Input:N = 98Output:2Explanation:98 % 4 = 2. Hence the output is 2.Input:200Output:0Explanation:200 % 4 = 0. Hence output is 0.

**Naive approach:**

For solving the above-mentioned problem we can use a naive method by using the **Modulo (%) operator** to find the remainder. But, the Modulo operator is computationally expensive and the method is inefficient.

**Efficient Approach:**

If we carefully observe the binary representation of N and its remainder with 4, we observe that remainder is simply the rightmost two bits in N. To get the rightmost two bits in number N, we perform bitwise AND (&) with 3 because 3 in binary is 0011. To understand the approach better let us have a look at the image below:

**Below is the implementation of the above approach:**

## C

`// C implementation to find N ` `// modulo 4 using Bitwise AND operator ` ` ` `#include <stdio.h> ` ` ` `// Function to find the remainder ` `int` `findRemainder(` `int` `n) ` `{ ` ` ` ` ` `// Bitwise AND with 3 ` ` ` `int` `x = n & 3; ` ` ` ` ` `// return x ` ` ` `return` `x; ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` ` ` `int` `N = 43; ` ` ` `int` `ans = findRemainder(N); ` ` ` ` ` `printf` `(` `"%d"` `, ans); ` ` ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## C++

`// C++ implementation to find N ` `// modulo 4 using Bitwise AND operator ` ` ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `// Function to find the remainder ` `int` `findRemainder(` `int` `n) ` `{ ` ` ` `// Bitwise AND with 3 ` ` ` `int` `x = n & 3; ` ` ` ` ` `// Return x ` ` ` `return` `x; ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` ` ` `int` `N = 43; ` ` ` ` ` `int` `ans = findRemainder(N); ` ` ` ` ` `cout << ans << endl; ` ` ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java implementation to find N ` `// modulo 4 using Bitwise AND operator ` ` ` `class` `Main { ` ` ` ` ` `// Driver code ` ` ` `public` `static` `void` `main(String[] args) ` ` ` `{ ` ` ` ` ` `int` `N = ` `43` `; ` ` ` ` ` `int` `ans = findRemainder(N); ` ` ` ` ` `System.out.println(ans); ` ` ` `} ` ` ` ` ` `// Function to find the remainder ` ` ` `public` `static` `int` `findRemainder(` `int` `n) ` ` ` `{ ` ` ` `// Bitwise AND with 3 ` ` ` `int` `x = n & ` `3` `; ` ` ` ` ` `// return x ` ` ` `return` `x; ` ` ` `} ` `} ` |

*chevron_right*

*filter_none*

## Python 3

`# Python 3 implementation to find N ` `# modulo 4 using Bitwise AND operator ` ` ` `# Function to find the remainder ` `def` `findRemainder(n): ` ` ` `# Bitwise AND with 3 ` ` ` `x ` `=` `n & ` `3` ` ` ` ` `# Return x ` ` ` `return` `x ` ` ` `# Driver code ` `if` `__name__ ` `=` `=` `'__main__'` `: ` ` ` `N ` `=` `43` ` ` ` ` `ans ` `=` `findRemainder(N) ` ` ` ` ` `print` `(ans) ` ` ` `# This code is contributed by Surendra_Gangwar ` |

*chevron_right*

*filter_none*

## C#

`// C# implementation to find N ` `// modulo 4 using Bitwise AND operator ` `using` `System; ` ` ` `class` `GFG { ` ` ` ` ` `// Driver code ` ` ` `public` `static` `void` `Main() ` ` ` `{ ` ` ` ` ` `int` `N = 43; ` ` ` ` ` `int` `ans = findRemainder(N); ` ` ` ` ` `Console.Write(ans); ` ` ` `} ` ` ` ` ` `// Function to find the remainder ` ` ` `public` `static` `int` `findRemainder(` `int` `n) ` ` ` `{ ` ` ` `// Bitwise AND with 3 ` ` ` `int` `x = n & 3; ` ` ` ` ` `// return x ` ` ` `return` `x; ` ` ` `} ` `} ` ` ` `# This code is contributed by chitranayal ` |

*chevron_right*

*filter_none*

**Output:**

3

**Time Complexity:** O(1)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready.