Count numbers which can be represented as sum of same parity primes
Last Updated :
16 Oct, 2022
Given an arr[] of positive integers you have to count how many numbers can be represented as sum of same parity prime numbers(can be same)
Examples:
Input : arr[] = {1, 3, 4, 6}
Output : 2
Explanation: 4 = 2+2, 6 = 3+3
Input : arr[] = {4, 98, 0, 36, 51}
Output : 3
1. If two numbers of same parity are added then they would be always even, so all odd numbers in the array can never contribute to answer.
2. Talking about 0 and 2 both cannot be represented by sum of same parity prime numbers.
3. Rest of all numbers will contribute to the answer (Refer https://www.geeksforgeeks.org/program-for-goldbachs-conjecture-two-primes-with-given-sum/)
So, we have to just iterate over the entire array and find out number of even elements not equal to 0 and 2.
C++
#include <bits/stdc++.h>
using namespace std;
int calculate( int * array, int size)
{
int count = 0;
for ( int i = 0; i < size; i++)
if (array[i] % 2 == 0 &&
array[i] != 0 &&
array[i] != 2)
count++;
return count;
}
int main()
{
int a[] = { 1, 3, 4, 6 };
int size = sizeof (a) / sizeof (a[0]);
cout << calculate(a, size);
}
|
Java
import java.util.*;
class GFG
{
public static int calculate( int ar[],
int size)
{
int count = 0 ;
for ( int i = 0 ; i < size; i++)
if (ar[i] % 2 == 0 &&
ar[i] != 0 &&
ar[i] != 2 )
count++;
return count;
}
public static void main (String[] args)
{
int a[] = { 1 , 3 , 4 , 6 };
int size = a.length;
System.out.print(calculate(a, size));
}
}
|
Python3
def calculate(array, size):
count = 0
for i in range (size):
if (array[i] % 2 = = 0 and
array[i] ! = 0 and
array[i] ! = 2 ):
count + = 1
return count
if __name__ = = "__main__" :
a = [ 1 , 3 , 4 , 6 ]
size = len (a)
print (calculate(a, size))
|
C#
using System;
class GFG
{
public static int calculate( int []ar,
int size)
{
int count = 0;
for ( int i = 0; i < size; i++)
if (ar[i] % 2 == 0 &&
ar[i] != 0 &&
ar[i] != 2)
count++;
return count;
}
static public void Main (String []args)
{
int []a = { 1, 3, 4, 6 };
int size = a.Length;
Console.WriteLine(calculate(a, size));
}
}
|
PHP
<?php
function calculate(& $array , $size )
{
$count = 0;
for ( $i = 0; $i < $size ; $i ++)
if ( $array [ $i ] % 2 == 0 &&
$array [ $i ] != 0 &&
$array [ $i ] != 2)
$count ++;
return $count ;
}
$a = array (1, 3, 4, 6 );
$size = sizeof( $a );
echo calculate( $a , $size );
?>
|
Javascript
<script>
function calculate(ar, size)
{
var count = 0;
for (i = 0; i < size; i++)
if (ar[i] % 2 == 0 &&
ar[i] != 0 && ar[i] != 2)
count++;
return count;
}
var a = [ 1, 3, 4, 6 ];
var size = a.length;
document.write(calculate(a, size));
</script>
|
Time complexity: O(n) where n is the size of the given array
Auxiliary space: O(1)
Share your thoughts in the comments
Please Login to comment...