Sum of elements from an array having even parity

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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to find the sum of the elements
// from an array which have even parity
#include <bits/stdc++.h>
using namespace std;
  
// Function that returns true if x has even parity
bool checkEvenParity(int x)
{
    // We basically count set bits 
    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[0]);
  
    cout << sumlist(arr, n);
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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 
    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..

chevron_right


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#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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 
    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

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP program to find the sum of the
// elements from an array which have 
// even parity
  
// Function that returns true
// if x has even parity
function checkEvenParity($x)
{
    // We basically count set bits 
    $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
function sumlist($a, $n)
{
    $sum = 0;
  
    for ($i = 0; $i < $n; $i++)
    {
  
        // If a[i] has even parity
        if (checkEvenParity($a[$i]))
            $sum += $a[$i];
    }
    return $sum;
}
  
// Driver code
$arr = array( 2, 4, 3, 5, 9 );
$n = sizeof($arr);
echo sumlist($arr, $n);
      
// This code is contributed by ajit.
?>

chevron_right


Output:

17


My Personal Notes arrow_drop_up

Data science |Machine learning|Programming facebook -https//wwwfacebookcom/profilephpid=100002787011326

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.