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

CServer Side ProgrammingProgramming

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.



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


 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++){
         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);


Difference: 50
Updated on 30-Jul-2019 22:30:26