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

Given a number N, the task is to find the bitwise OR( | ) of all even numbers from 1 to N.
Examples:
Input: 2
Output: 2Input: 10
Output: 14
Explanation: 2 | 4 | 6 | 8 | 10 = 14
Naive Approach:
- Initialize the result as 2.
- Iterate the 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 <iostream>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 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 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 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
<script>// Javascript implementation of the above approach// Function to return the bitwise OR// of all the even numbers upto Nfunction bitwiseOrTillN(n){ // Initialize result as 2 var result = 2; for(var i = 4; i <= n; i = i + 2) { result = result | i; } return result;}// Driver codevar n = 10;document.write( bitwiseOrTillN(n));// This code is contributed by noob2000</script> |
14
Time Complexity: O(n), where n is the given integer.
Auxiliary Space: O(1), no extra space is required, so it is a constant.
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 <iostream>#include <math.h>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 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
<script>// Javascript implementation of the approach// Function to return the bitwise OR// of all even numbers upto Nfunction 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 var bitCount = parseInt(Math.log2(n) + 1); // Compute 2 to the power bitCount and subtract 2 return Math.pow(2, bitCount) - 2;}// Driver codevar n = 10;document.write( bitwiseOrTillN(n));//This code is contributed by SoumikMondal</script> |
14
Time Complexity: O(log(log n), where n is the given integer.
Auxiliary Space: O(1), no extra space is required, so it is a constant.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



