# Maximum Bitwise AND pair (X, Y) from given range such that X and Y can be same

• Last Updated : 05 May, 2021

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:
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.

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`

## Javascript

 ``

Output:

`7`

Time Complexity: O(1)

My Personal Notes arrow_drop_up