Related Articles

# Sum of elements from an array having even parity

• Difficulty Level : Basic
• Last Updated : 14 Apr, 2021

Given an array arr[], the task is to calculate the sum of the elements from the given array which has even parity i.e. the number of set bits is even using bitwise operator.

Examples:

Input: arr[] = {2, 4, 3, 5, 9}
Output: 17
Only 3(0011), 5(0101) and 9(1001) have even parity
So 3 + 5 + 9 = 17

Input: arr[] = {1, 5, 4, 16, 10}
Output: 15

Approach: Initialize a variable sum = 0 and traverse the array from 0 to n – 1 while counting the number of set bits in arr[i] using Brian Kernighan’s Algorithm. If the count is even then update sum = sum + arr[i]. Print the sum in the end.

Below is the implementation of the above approach:

## C++

 `// C++ program to find the sum of the elements``// from an array which have even parity``#include ``using` `namespace` `std;` `// Function that returns true if x has even parity``bool` `checkEvenParity(``int` `x)``{``    ``// We basically count set bits``    ``// https://www.geeksforgeeks.org/count-set-bits-in-an-integer/``    ``int` `parity = 0;``    ``while` `(x != 0) {``        ``x = x & (x - 1);``        ``parity++;``    ``}` `    ``if` `(parity % 2 == 0)``        ``return` `true``;``    ``else``        ``return` `false``;``}` `// Function to return the sum of the elements``// from an array which have even parity``long` `sumlist(``int` `a[], ``int` `n)``{``    ``long` `sum = 0;` `    ``for` `(``int` `i = 0; i < n; i++) {` `        ``// If a[i] has even parity``        ``if` `(checkEvenParity(a[i]))``            ``sum += a[i];``    ``}``    ``return` `sum;``}` `// Driver code``int` `main()``{``    ``int` `arr[] = { 2, 4, 3, 5, 9 };` `    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr);` `    ``cout << sumlist(arr, n);``    ``return` `0;``}`

## Java

 `// Java program to find the sum of the elements``// from an array which have even parity` `import` `java.io.*;` `class` `GFG {` `// Function that returns true if x has even parity``static` `boolean` `checkEvenParity(``int` `x)``{``    ``// We basically count set bits``    ``// https://www.geeksforgeeks.org/count-set-bits-in-an-integer/``    ``int` `parity = ``0``;``    ``while` `(x != ``0``) {``        ``x = x & (x - ``1``);``        ``parity++;``    ``}` `    ``if` `(parity % ``2` `== ``0``)``        ``return` `true``;``    ``else``        ``return` `false``;``}` `// Function to return the sum of the elements``// from an array which have even parity``static` `long` `sumlist(``int` `a[], ``int` `n)``{``    ``long` `sum = ``0``;` `    ``for` `(``int` `i = ``0``; i < n; i++) {` `        ``// If a[i] has even parity``        ``if` `(checkEvenParity(a[i]))``            ``sum += a[i];``    ``}``    ``return` `sum;``}` `// Driver code` `    ``public` `static` `void` `main (String[] args) {``            ``int` `arr[] = { ``2``, ``4``, ``3``, ``5``, ``9` `};` `    ``int` `n =arr.length;` `    ``System.out.println(sumlist(arr, n));``    ``}``}``// This code is contributed by  inder_verma..`

## Python3

 `# Python3 program to find the sum of the elements``# from an array which have even parity` `# Function that returns true if x``# has even parity``def` `checkEvenParity(x):``    ` `    ``# We basically count set bits``    ``# https://www.geeksforgeeks.org/count-set-bits-in-an-integer/``    ``parity ``=` `0``    ``while` `(x !``=` `0``):``        ``x ``=` `x & (x ``-` `1``)``        ``parity ``+``=` `1` `    ``if` `(parity ``%` `2` `=``=` `0``):``        ``return` `True``    ``else``:``        ``return` `False` `# Function to return the sum of the elements``# from an array which have even parity``def` `sumlist(a, n):``    ``sum` `=` `0``    ``for` `i ``in` `range``(n):``        ` `        ``# If a[i] has even parity``        ``if` `(checkEvenParity(a[i])):``            ``sum` `+``=` `a[i]``    ``return` `sum` `# Driver code``if` `__name__ ``=``=` `'__main__'``:``    ``arr ``=` `[ ``2``, ``4``, ``3``, ``5``, ``9` `]``    ``n ``=` `len``(arr)``    ``print``(sumlist(arr, n))` `# This code is contributed by 29AjayKumar.`

## C#

 `// C# program to find the sum of the elements``// from an array which have even parity` `using` `System ;` `class` `GFG {` `// Function that returns true if x has even parity``static` `bool` `checkEvenParity(``int` `x)``{``    ``// We basically count set bits``    ``// https://www.geeksforgeeks.org/count-set-bits-in-an-integer/``    ``int` `parity = 0;``    ``while` `(x != 0) {``        ``x = x & (x - 1);``        ``parity++;``    ``}` `    ``if` `(parity % 2 == 0)``        ``return` `true``;``    ``else``        ``return` `false``;``}` `// Function to return the sum of the elements``// from an array which have even parity``static` `long` `sumlist(``int` `[]a, ``int` `n)``{``    ``long` `sum = 0;` `    ``for` `(``int` `i = 0; i < n; i++) {` `        ``// If a[i] has even parity``        ``if` `(checkEvenParity(a[i]))``            ``sum += a[i];``    ``}``    ``return` `sum;``}` `// Driver code` `    ``public` `static` `void` `Main () {``            ``int` `[]arr = { 2, 4, 3, 5, 9 };` `    ``int` `n =arr.Length;` `    ``Console.WriteLine(sumlist(arr, n));``    ``}``    ``// This code is contributed by Ryuga``}`

## PHP

 ``

## Javascript

 ``
Output:
`17`

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.

My Personal Notes arrow_drop_up