# Sum of bitwise OR of all subarrays

• Difficulty Level : Easy
• Last Updated : 22 Jun, 2021

Give 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```

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students. 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);``    ``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);``    ``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`

My Personal Notes arrow_drop_up