Absolute Difference between the Sum of Non-Prime numbers and Prime numbers of an Array?



Here we will see how we can find the absolute difference between the sum of all prime numbers and all non-prime numbers of an array. To solve this problem, we have to check whether a number is prime or not. One possible way for primality testing is by checking a number is not divisible by any number between 2 to square root of that number. So this process will take ?(√?) amount of time. Then get the sum and try to find the absolute difference.

Algorithm

diffPrimeNonPrimeSum(arr)

begin    sum_p := sum of all prime numbers in arr    sum_np := sum of all non-prime numbers in arr    return |sum_p – sum_np| end

Example

 Live Demo

#include <iostream> #include <cmath> using namespace std; bool isPrime(int n){    for(int i = 2; i<=sqrt(n); i++){       if(n % i == 0){          return false; //not prime       }    }    return true; //prime } int diffPrimeNonPrimeSum(int arr[], int n) {    int sum_p = 0, sum_np = 0;    for(int i = 0; i<n; i++){       if(isPrime(arr[i])){          sum_p += arr[i];       } else {          sum_np += arr[i];       }    }    return abs(sum_p - sum_np); } main() {    int arr[] = { 5, 8, 9, 6, 21, 27, 3, 13};    int n = sizeof(arr) / sizeof(arr[0]);    cout << "Difference: " << diffPrimeNonPrimeSum(arr, n); }

Output

Difference: 50
Updated on: 2019-07-30T22:30:26+05:30

243 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements