# Bitwise OR( | ) of all even number from 1 to N

• Last Updated : 05 May, 2021

Given a number N, the task is to find the bitwise OR( | ) of all even number from 1 to N.

Examples:

Input:
Output: 2

Input: 10
Output: 14
Explanation: 2 | 4 | 6 | 8 | 10 = 14

Naive Approach: Initialize result as 2.Iterate loop from 4 to n (for all even number) and update result by finding bitwise or ( | ).

Below is the implementation of the approach:

## C++

 // C++ implementation of the above approach#include using namespace std; // Function to return the bitwise OR// of all the even numbers upto Nint bitwiseOrTillN(int n){    // Initialize result as 2    int result = 2;     for (int i = 4; i <= n; i = i + 2) {        result = result | i;    }    return result;} // Driver codeint main(){    int n = 10;    cout << bitwiseOrTillN(n);    return 0;}

## Java

 // Java implementation of the above approachclass GFG{         // Function to return the bitwise OR    // of all the even numbers upto N    static int bitwiseOrTillN(int n)    {        // Initialize result as 2        int result = 2;             for (int i = 4; i <= n; i = i + 2)        {            result = result | i;        }        return result;    }         // Driver code    static public void main (String args[])    {        int n = 10;        System.out.println(bitwiseOrTillN(n));    }} // This code is contributed by AnkitRai01

## Python3

 # Python 3 implementation of the above approach # Function to return the bitwise OR# of all the even numbers upto Ndef bitwiseOrTillN ( n ):         # Initialize result as 2    result = 2;     for i in range(4, n + 1, 2) :        result = result | i         return result # Driver coden = 10;print(bitwiseOrTillN(n)); # This code is contributed by ANKITKUMAR34

## C#

 // C# implementation of the above approachusing System; class GFG{         // Function to return the bitwise OR    // of all the even numbers upto N    static int bitwiseOrTillN(int n)    {        // Initialize result as 2        int result = 2;             for (int i = 4; i <= n; i = i + 2)        {            result = result | i;        }        return result;    }         // Driver code    static public void Main ()    {        int n = 10;        Console.WriteLine(bitwiseOrTillN(n));    }} // This code is contributed by AnkitRai01

## Javascript


Output:
14

Efficient Approach: Compute the total number of bits in N. In bitwise OR, the rightmost bit will be 0 and all other bits will be 1. Therefore, return pow(2, total no. of bits)-2. It will give the equivalent value in decimal of bitwise OR.

Below is the implementation of the approach:

## C++

 // C++ implementation of the above approach#include #include using namespace std; // Function to return the bitwise OR// of all even numbers upto Nint bitwiseOrTillN(int n){    // For value less than 2    if (n < 2)        return 0;     // Count total number of bits in bitwise or    // all bits will be set except last bit    int bitCount = log2(n) + 1;     // Compute 2 to the power bitCount and subtract 2    return pow(2, bitCount) - 2;} // Driver codeint main(){    int n = 10;    cout << bitwiseOrTillN(n);    return 0;}

## Java

 // Java implementation of the above approachclass GFG{         // Function to return the bitwise OR    // of all even numbers upto N    static int bitwiseOrTillN(int n)    {        // For value less than 2        if (n < 2)            return 0;             // Count total number of bits in bitwise or        // all bits will be set except last bit        int bitCount = (int)(Math.log(n)/Math.log(2)) + 1;             // Compute 2 to the power bitCount and subtract 2        return (int)Math.pow(2, bitCount) - 2;    }         // Driver code    public static void main (String[] args)    {        int n = 10;        System.out.println(bitwiseOrTillN(n));    }} // This code is contributed by AnkitRai01

## Python3

 # Python3 implementation of the above approachfrom math import log2 # Function to return the bitwise OR# of all even numbers upto Ndef bitwiseOrTillN(n) :     # For value less than 2    if (n < 2) :        return 0;     # Count total number of bits in bitwise or    # all bits will be set except last bit    bitCount = int(log2(n)) + 1;     # Compute 2 to the power bitCount and subtract 2    return pow(2, bitCount) - 2; # Driver codeif __name__ == "__main__" :     n = 10;    print(bitwiseOrTillN(n)); # This code is contributed by AnkitRai01

## C#

 // C# implementation of the above approachusing System; class GFG{         // Function to return the bitwise OR    // of all even numbers upto N    static int bitwiseOrTillN(int n)    {        // For value less than 2        if (n < 2)            return 0;             // Count total number of bits in bitwise or        // all bits will be set except last bit        int bitCount = (int)(Math.Log(n)/Math.Log(2)) + 1;             // Compute 2 to the power bitCount and subtract 2        return (int)Math.Pow(2, bitCount) - 2;    }         // Driver code    public static void Main()    {        int n = 10;        Console.WriteLine(bitwiseOrTillN(n));    }} // This code is contributed by AnkitRai01

## Javascript


Output:
14

My Personal Notes arrow_drop_up