GeeksforGeeks App
Open App
Browser
Continue

# Sum of bitwise OR of all subarrays

Given an array of positive integers, find the total sum after performing the bit wise OR operation on all the sub arrays of a given array.

Examples:

```Input : 1 2 3 4 5
Output : 71

Input : 6 5 4 3 2
Output : 84```

First initialize the two variable sum=0, sum1=0, variable sum will store the total sum and, with sum1 we will perform bitwise OR operation for each jth element, and add sum1 with sum.

1. Traverse the from 0th position to n-1.
2. For each ith variable we will perform bit wise OR operation on all the sub arrays to find the total sum.

Repeat step until the whole array is traverse.

## C++

 `// C++ program to find sum of``// bitwise ors of all subarrays.``#include ``using` `namespace` `std;` `int` `totalSum(``int` `a[], ``int` `n)``{``    ``int` `i, sum = 0, sum1 = 0, j;` `    ``for` `(i = 0; i < n; i++)``    ``{` `        ``sum1 = 0;` `        ``// perform Bitwise OR operation``        ``// on all the subarray present``        ``// in array``        ``for` `(j = i; j < n; j++)``        ``{` `            ``// OR operation``            ``sum1 = (sum1 | a[j]);` `            ``// now add the sum after performing``            ``// the Bitwise OR operation``            ``sum = sum + sum1;``        ``}``    ``}` `    ``return` `sum;``}` `// Driver code``int` `main()``{``    ``int` `a[] = { 1, 2, 3, 4, 5 };``    ``int` `n = ``sizeof``(a) / ``sizeof``(a[0]);``    ``cout << totalSum(a, n) << endl;``    ``return` `0;``}` `// This code is contributed``// by Shivi_Aggarwal`

## C

 `// C program to find sum of bitwise ors``// of all subarrays.``#include ` `int` `totalSum(``int` `a[], ``int` `n)``{``    ``int` `i, sum = 0, sum1 = 0, j;` `    ``for` `(i = 0; i < n; i++) {` `        ``sum1 = 0;` `        ``// perform Bitwise OR operation``        ``// on all the subarray present in array``        ``for` `(j = i; j < n; j++) {` `            ``// OR operation``            ``sum1 = (sum1 | a[j]);` `            ``// now add the sum after performing the``            ``// Bitwise OR operation``            ``sum = sum + sum1;``        ``}``    ``}` `    ``return` `sum;``}` `// Driver code``int` `main()``{``    ``int` `a[] = { 1, 2, 3, 4, 5 };``    ``int` `n = ``sizeof``(a)/``sizeof``(a[0]);``    ``printf``(``"%d "``, totalSum(a, n));``    ``return` `0;``}`

## Java

 `// Java program to find sum``// of bitwise ors of all subarrays.``import` `java.util.*;``import` `java.lang.*;``import` `java.io.*;` `class` `GFG``{``static` `int` `totalSum(``int` `a[], ``int` `n)``{``    ``int` `i, sum = ``0``, sum1 = ``0``, j;` `    ``for` `(i = ``0``; i < n; i++)``    ``{``        ``sum1 = ``0``;` `        ``// perform Bitwise OR operation``        ``// on all the subarray present``        ``// in array``        ``for` `(j = i; j < n; j++)``        ``{` `            ``// OR operation``            ``sum1 = (sum1 | a[j]);` `            ``// now add the sum after``            ``// performing the Bitwise``            ``// OR operation``            ``sum = sum + sum1;``        ``}``    ``}` `    ``return` `sum;``}` `// Driver code``public` `static` `void` `main(String args[])``{``    ``int` `a[] = { ``1``, ``2``, ``3``, ``4``, ``5` `};``    ``int` `n = a.length;``    ``System.out.println(totalSum(a,n));``}``}` `// This code is contributed``// by Subhadeep`

## Python3

 `# Python3 program to find sum of``# bitwise ors of all subarrays.``def` `totalSum(a, n):``    ``sum` `=` `0``;``    ``for` `i ``in` `range``(n):``        ``sum1 ``=` `0``;``        ` `        ``# perform Bitwise OR operation``        ``# on all the subarray present``        ``# in array``        ``for` `j ``in` `range``(i, n):``            ` `            ``# OR operation``            ``sum1 ``=` `(sum1 | a[j]);``            ` `            ``# now add the sum after``            ``# performing the``            ``# Bitwise OR operation``            ``sum` `=` `sum` `+` `sum1;``    ``return` `sum``;` `# Driver code``a ``=` `[``1``, ``2``, ``3``, ``4``, ``5``];``n ``=` `len``(a);``print``(totalSum(a, n));` `# This code is contributed by mits`

## C#

 `// C# program to find sum``// of bitwise ors of all``// subarrays.``using` `System;` `class` `GFG``{``static` `int` `totalSum(``int``[] a, ``int` `n)``{``    ``int` `sum = 0;``    ``for``(``int` `i = 0; i < n; i++)``    ``{``        ``int` `sum1 = 0;` `        ``// perform Bitwise OR operation``        ``// on all the subarray present``        ``// in array``        ``for` `(``int` `j = i; j < n; j++)``        ``{` `            ``// OR operation``            ``sum1 = (sum1 | a[j]);` `            ``// now add the sum after``            ``// performing the Bitwise``            ``// OR operation``            ``sum = sum + sum1;``        ``}``    ``}` `    ``return` `sum;``}` `// Driver code``static` `void` `Main()``{``    ``int``[] a = { 1, 2, 3, 4, 5 };``    ``int` `n = a.Length;``    ``Console.WriteLine(totalSum(a,n));``}``}` `// This code is contributed``// by mits`

## PHP

 ``

## Javascript

 ``

Output

`71`

Time Complexity: O(N*N)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up