# 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 N` `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` `int` `main()` `{` `    ``int` `n = 10;` `    ``cout << bitwiseOrTillN(n);` `    ``return` `0;` `}`

## Java

 `// Java implementation of the above approach ` `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 (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 N` `def` `bitwiseOrTillN ( n ):` `    `  `    ``# Initialize result as 2` `    ``result ``=` `2``;`   `    ``for` `i ``in` `range``(``4``, n ``+` `1``, ``2``) :` `        ``result ``=` `result | i` `    `  `    ``return` `result`   `# Driver code` `n ``=` `10``;` `print``(bitwiseOrTillN(n));`   `# This code is contributed by ANKITKUMAR34`

## C#

 `// C# implementation of the above approach ` `using` `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 N` `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 = log2(n) + 1;`   `    ``// Compute 2 to the power bitCount and subtract 2` `    ``return` `pow``(2, bitCount) - 2;` `}`   `// Driver code` `int` `main()` `{` `    ``int` `n = 10;` `    ``cout << bitwiseOrTillN(n);` `    ``return` `0;` `}`

## Java

 `// Java implementation of the above approach ` `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 (String[] args)` `    ``{ ` `        ``int` `n = ``10``; ` `        ``System.out.println(bitwiseOrTillN(n)); ` `    ``} ` `}`   `// This code is contributed by AnkitRai01`

## Python3

 `# Python3 implementation of the above approach ` `from` `math ``import` `log2`   `# Function to return the bitwise OR ` `# of all even numbers upto N ` `def` `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 code ` `if` `__name__ ``=``=` `"__main__"` `: `   `    ``n ``=` `10``; ` `    ``print``(bitwiseOrTillN(n)); `   `# This code is contributed by AnkitRai01`

## C#

 `// C# implementation of the above approach ` `using` `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
Recommended Articles
Page :