Related Articles
Maximum Bitwise AND pair (X, Y) from given range such that X and Y can be same
• Last Updated : 23 Jun, 2020

Given a range [L, R], the task is to find a pair (X, Y), not necessarily distinct. Find the maximum possible value of the bitwise AND of the chosen integers.

Examples:

Input: L = 3, R = 7
Output: 7
Explanation:
In all the possible pairs, pair (7, 7) gives the maximum value for bitwise AND.

Input: L = 54, R = 55
Output: 55
Explanation:
In all the possible pairs, pair (55, 55) gives the maximum value for bitwise AND.

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

Naive Approach: To solve the problem mentioned above the naive method is to iterate from L to R and check the bitwise AND for every possible pair and print the maximum value in the end.

Time Complexity: O(N2)

Efficient Approach:

To optimize the above method we have to observe that here we have to integers L and R and we have to select two integers from the interval [L, R] so that their bitwise AND should be maximum. Bitwise AND of any two numbers between L and R will be always less than or equal to R only. So if we have to select two integers from the interval, we can choose the integers to be R and that’s the only way to maximize the bitwise AND.

Below is the implementation of above approach:

## C

 `// C implementation to find the``// Maximum Bitwise AND pair (X, Y)``// from given range such that``// X and Y can be same`` ` `#include `` ` `// Function to return the``// maximum bitwise AND``int` `maximumAND(``int` `L, ``int` `R)``{``    ``return` `R;``}`` ` `// Driver code``int` `main()``{``    ``int` `l = 3;``    ``int` `r = 7;`` ` `    ``printf``(``"%d"``, maximumAND(l, r));`` ` `    ``return` `0;``}`

## C++

 `// C++ implementation to find the``// Maximum Bitwise AND pair (X, Y)``// from given range such that``// X and Y can be same`` ` `#include ``using` `namespace` `std;`` ` `// Function to return the``// maximum bitwise AND``int` `maximumAND(``int` `L, ``int` `R)``{``    ``return` `R;``}`` ` `// Driver code``int` `main()``{``    ``int` `l = 3;``    ``int` `r = 7;`` ` `    ``cout << maximumAND(l, r);`` ` `    ``return` `0;``}`

## Java

 `// Java implementation to find the``// Maximum Bitwise AND pair (X, Y)``// from given range such that``// X and Y can be same`` ` `class` `GFG {`` ` `    ``// Function to return the``    ``// maximum bitwise AND``    ``static` `int` `maximumAND(``int` `L, ``int` `R)``    ``{``        ``return` `R;``    ``}`` ` `    ``// Driver code``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `l = ``3``;``        ``int` `r = ``7``;``        ``System.out.print(maximumAND(l, r));``    ``}``}`

## Python3

 `# Python3 implementation to find the ``# Maximum Bitwise AND pair (X, Y)``# from given range such that``# X and Y can be same`` ` `# Function to return the``# maximum bitwise AND ``def` `maximumAND(L, R):``    ``return` `R`` ` `# Driver code ``if` `__name__ ``=``=` `'__main__'``: ``    ``l ``=` `3``    ``r ``=` `7``    ``print``(maximumAND(l, r)) `

## C#

 `// C# implementation to find the``// maximum Bitwise AND pair (X, Y)``// from given range such that``// X and Y can be same``using` `System;`` ` `class` `GFG{`` ` `// Function to return the``// maximum bitwise AND``static` `int` `maximumAND(``int` `L, ``int` `R)``{``    ``return` `R;``}`` ` `// Driver code``public` `static` `void` `Main(String[] args)``{``    ``int` `l = 3;``    ``int` `r = 7;``     ` `    ``Console.Write(maximumAND(l, r));``}``}`` ` `// This code is contributed by amal kumar choubey`
Output:
```7
```

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.

My Personal Notes arrow_drop_up