Open In App

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

Last Updated : 05 May, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

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 <stdio.h>
 
// 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 <bits/stdc++.h>
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




<script>
 
// JavaScript 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
    function maximumAND(L, R)
    {
        return R;
    }
 
// Driver Code
 
        let l = 3;
        let r = 7;
        document.write(maximumAND(l, r));
 
</script>


Output: 

7

 

Time Complexity: O(1)
 



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads