# Sum of product of all pairs of array elements

• Difficulty Level : Easy
• Last Updated : 14 Aug, 2021

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

 `// A naive C++ program to find sum of product``#include ``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;``}`

## Java

 `/*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));` `    ``}``}`

## Python3

 `# 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))`

## C#

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

## PHP

 ``

## Javascript

 ``

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

 `// Efficient C++ program to find sum pair products``// in an array.``#include ``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];` `    ``// calculating square of array sum``    ``// (a1 + a2 + ... + an)^2``    ``int` `array_sum_square = array_sum * array_sum;` `    ``// calculating 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;``}`

## Java

 `// 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];` `    ``// calculating square of array sum``    ``// (a1 + a2 + ... + an)^2``    ``int` `array_sum_square = array_sum * array_sum;` `    ``// calculating 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`

## Python3

 `# 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]` `    ``# calculating square of array sum``    ``# (a1 + a2 + ... + an)^2``    ``array_sum_square ``=` `array_sum ``*` `array_sum` `    ``# calculating 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`

## C#

 `// 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];` `    ``// calculating square of array sum``    ``// (a1 + a2 + ... + an)^2``    ``int` `array_sum_square = array_sum * array_sum;` `    ``// calculating 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`

## PHP

 ``

## Javascript

 ``

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 write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.