Sum of product of all pairs of array elements

Given an array A[] of integers find sum of product of all pairs of array elements i. e., we need to find of product after execution of following pseudo code

product = 0
for i = 1:n
    for j = i+1:n
        product = product + A[i]*A[j]

Examples:

Input : A[] = {1, 3, 4}
Output : 19
Possible Pairs : (1,3), (1,4), (3,4)
Sum of Product : 1*3 + 1*4 + 3*4 = 19



Naive Solution :

For each index i we loop through j=i+1 to j=n and add A[i]*A[j] each time. Below is implementation for the same.

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// A naive C++ program to find sum of product
#include <iostream>
using namespace std;
  
// Returns sum of pair products
int findProductSum(int A[], int n)
{
    int product = 0;
    for (int i = 0; i < n; i++)
        for (int j = i+1; j < n; j++)
            product = product + A[i]*A[j];
    return product;
}
  
// Driver code
int main()
{
    int A[] = {1, 3, 4};
    int n = sizeof(A)/sizeof(A[0]);
  
    cout << "sum of product of all pairs "
    "of array elements : " << findProductSum(A, n);
  
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

/*package whatever //do not write package name here */
// A naive Java program to find sum of product
import java.io.*;
class test
{
    // Returns sum of pair products
    int findProductSum(int A[], int n)
    {
    int product = 0;
    for (int i = 0; i < n; i++)
        for (int j = i+1; j < n; j++)
            product = product + A[i]*A[j];
    return product;
    
}
class GFG {
  
// Driver code
    public static void main (String[] args) {
  
    int A[] = {1, 3, 4};
    int n = A.length;
    test t = new test();
    System.out.print("sum of product of all pairs of array elements : ");
    System.out.println(t.findProductSum(A, n));
  
    }
}

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# A naive python3 program to find sum of product
   
# Returns sum of pair products
def findProductSum(A,n):
  
    product = 0
    for i in range (n):
        for j in range ( i+1,n):
            product = product + A[i]*A[j]
    return product
   
# Driver code
if __name__=="__main__":
  
    A = [1, 3, 4]
    n = len (A)
   
    print("sum of product of all pairs "
    "of array elements : " ,findProductSum(A, n))

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// A naive C# program to find sum of product
using System;
  
class GFG
{
      
// Returns sum of pair products
static int findProductSum(int[] A, int n)
{
    int product = 0;
    for (int i = 0; i < n; i++)
        for (int j = i + 1; j < n; j++)
            product = product + A[i] * A[j];
    return product;
  
// Driver code
public static void Main() 
{
    int[] A = {1, 3, 4};
    int n = A.Length;
    Console.WriteLine("sum of product of all "
                      "pairs of array elements : ");
    Console.WriteLine(findProductSum(A, n));
}
}
  
// This code is contributed
// by Akanksha Rai

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// A naive PHP program to find 
// sum of product
  
// Returns sum of pair products
function findProductSum($A, $n)
{
    $product = 0;
    for ($i = 0; $i < $n; $i++)
        for ($j = $i + 1; $j < $n; $j++)
            $product = $product + $A[$i] * $A[$j];
    return $product;
}
  
    // Driver code
    $A = array (1, 3, 4);
    $n = sizeof($A);
  
    echo "sum of product of all pairs ",
         "of array elements : " 
         ,findProductSum($A, $n);
  
// This code is contributed by aj_36
?>

chevron_right



Output:

sum of product of all pairs of array elements : 19

Time Complexity : O(n2)
Space Complexity : O(1)

Efficient O(n) solution :

We know that
(a + b + c)2 = a2 + b2 + c2 + 2*(a*b + b*c + c*a)
Let required sum be P
Let E = (a1 + a2 + a3 + a4 ... + an)^2 
=> E = a12 + a22 + ... + an2 + 2*(a1*a2 + a1*a3 + ....)
=> E = a12 + a22 + ... + an2 + 2*(P)
=> P = ( E - (a12 + a22 + .... + an2) ) / 2

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// Efficient C++ program to find sum pair products
// in an array.
#include <iostream>
using namespace std;
  
// required function
int findProductSum(int A[], int n)
{
    // calculating array sum (a1 + a2  ... + an)
    int array_sum = 0;
    for (int i = 0; i < n; i++)
        array_sum = array_sum + A[i];
  
    // calcualting square of array sum
    // (a1 + a2 + ... + an)^2
    int array_sum_square = array_sum * array_sum;
  
    // calcualting a1^2 + a2^2 + ... + an^2
    int individual_square_sum = 0;
    for (int i = 0; i < n; i++)
        individual_square_sum += A[i]*A[i];
  
    // required sum is (array_sum_square -
    // individual_square_sum) / 2
    return (array_sum_square - individual_square_sum)/2;
}
  
// Driver code
int main()
{
    int A[] = {1, 3, 4};
    int n = sizeof(A)/sizeof(A[0]);
    cout << "sum of product of all pairs of array "
            "elements : " << findProductSum(A, n);
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Efficient Java program to find sum pair products
// in an array.
class GFG 
{
  
// required function
static int findProductSum(int A[], int n)
{
    // calculating array sum (a1 + a2 ... + an)
    int array_sum = 0;
    for (int i = 0; i < n; i++)
        array_sum = array_sum + A[i];
  
    // calcualting square of array sum
    // (a1 + a2 + ... + an)^2
    int array_sum_square = array_sum * array_sum;
  
    // calcualting a1^2 + a2^2 + ... + an^2
    int individual_square_sum = 0;
    for (int i = 0; i < n; i++)
        individual_square_sum += A[i] * A[i];
  
    // required sum is (array_sum_square -
    // individual_square_sum) / 2
    return (array_sum_square - individual_square_sum) / 2;
}
  
// Driver code
public static void main(String[] args) 
{
    int A[] = {1, 3, 4};
    int n = A.length;
    System.out.println("sum of product of all pairs of array "
            +"elements : " + findProductSum(A, n));
    }
  
// This code is contributed by 29AjayKumar

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Efficient python 3 program to find sum 
# pair products in an array.
  
# required function
def findProductSum(A, n):
      
    # calculating array sum (a1 + a2 ... + an)
    array_sum = 0
    for i in range(0, n, 1):
        array_sum = array_sum + A[i]
  
    # calcualting square of array sum
    # (a1 + a2 + ... + an)^2
    array_sum_square = array_sum * array_sum
  
    # calcualting a1^2 + a2^2 + ... + an^2
    individual_square_sum = 0
    for i in range(0, n, 1):
        individual_square_sum += A[i] * A[i]
  
    # required sum is (array_sum_square -
    # individual_square_sum) / 2
    return (array_sum_square - 
            individual_square_sum) / 2
  
# Driver code
if __name__ == '__main__':
    A = [1, 3, 4]
    n = len(A)
    print("sum of product of all pairs of",
          "array elements :", int(findProductSum(A, n)))
      
# This code is contributed by
# Sahil_Shelangia

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// Efficient C# program to find sum pair 
// products in an array.
using System;
  
class GFG 
{
  
// required function
static int findProductSum(int[] A, int n)
{
    // calculating array sum (a1 + a2 ... + an)
    int array_sum = 0;
    for (int i = 0; i < n; i++)
        array_sum = array_sum + A[i];
  
    // calcualting square of array sum
    // (a1 + a2 + ... + an)^2
    int array_sum_square = array_sum * array_sum;
  
    // calcualting a1^2 + a2^2 + ... + an^2
    int individual_square_sum = 0;
    for (int i = 0; i < n; i++)
        individual_square_sum += A[i] * A[i];
  
    // required sum is (array_sum_square -
    // individual_square_sum) / 2
    return (array_sum_square -
            individual_square_sum) / 2;
}
  
// Driver code
public static void Main() 
{
    int[] A = {1, 3, 4};
    int n = A.Length;
    Console.WriteLine("sum of product of all "
                      "pairs of array elements : " +
                       findProductSum(A, n));
}
  
// This code is contributed by Akanksha Rai

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// Efficient PHP program to find sum 
// pair products in an array.
  
// required function
function findProductSum(&$A, $n)
{
    // calculating array sum (a1 + a2 ... + an)
    $array_sum = 0;
    for ($i = 0; $i < $n; $i++)
        $array_sum = $array_sum + $A[$i];
  
    // calcualting square of array sum
    // (a1 + a2 + ... + an)^2
    $array_sum_square = $array_sum * $array_sum;
  
    // calcualting a1^2 + a2^2 + ... + an^2
    $individual_square_sum = 0;
    for ($i = 0; $i < $n; $i++)
        $individual_square_sum += $A[$i] * $A[$i];
  
    // required sum is (array_sum_square -
    // individual_square_sum) / 2
    return ($array_sum_square
            $individual_square_sum) / 2;
}
  
// Driver code
$A = array(1, 3, 4);
$n = sizeof($A);
echo("sum of product of all pairs "
             "of array elements : ");
echo (findProductSum($A, $n));
  
// This code is contributed 
// by Shivi_Aggarwal 
?>

chevron_right



Output:

sum of product of all pairs of array elements : 19

Time Complexity : O(n)
Space Complexity : O(1)

This article is contributed by Pratik Chhajer. 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 write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



My Personal Notes arrow_drop_up