# Number of pairs in an array having sum equal to product

Given an array **arr[]**, the task is to find the number of pairs **(arr[i], arr[j])** in the array such that **arr[i] + arr[j] = arr[i] * arr[j]****Examples:**

Input:arr[] = {2, 2, 3, 4, 6}Output:1

(2, 2) is the only possible pair as (2 + 2) = (2 * 2) = 4.Input:arr[] = {1, 2, 3, 4, 5}Output:0

**Approach:** The only possible pairs of integers that will satisfy the given conditions are **(0, 0)** and **(2, 2)**. So the task now is to count the number of **0s** and **2s** in the array and store them in **cnt0** and **cnt2** respectively and then the required count will be **(cnt0 * (cnt0 – 1)) / 2 + (cnt2 * (cnt2 – 1)) / 2**.

Below is the implementation of the above approach:

## C++

`// C++ implementation of the approach` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function to return the count` `// of the required pairs` `int` `sumEqualProduct(` `int` `a[], ` `int` `n)` `{` ` ` `int` `zero = 0, two = 0;` ` ` `// Find the count of 0s` ` ` `// and 2s in the array` ` ` `for` `(` `int` `i = 0; i < n; i++) {` ` ` `if` `(a[i] == 0) {` ` ` `zero++;` ` ` `}` ` ` `if` `(a[i] == 2) {` ` ` `two++;` ` ` `}` ` ` `}` ` ` `// Find the count of required pairs` ` ` `int` `cnt = (zero * (zero - 1)) / 2` ` ` `+ (two * (two - 1)) / 2;` ` ` `// Return the count` ` ` `return` `cnt;` `}` `// Driver code` `int` `main()` `{` ` ` `int` `a[] = { 2, 2, 3, 4, 2, 6 };` ` ` `int` `n = ` `sizeof` `(a) / ` `sizeof` `(a[0]);` ` ` `cout << sumEqualProduct(a, n);` ` ` `return` `0;` `}` |

## Java

`// Java implementation of the approach` `import` `java.util.*;` `class` `GFG {` ` ` `// Function to return the count` ` ` `// of the required pairs` ` ` `static` `int` `sumEqualProduct(` `int` `a[], ` `int` `n)` ` ` `{` ` ` `int` `zero = ` `0` `, two = ` `0` `;` ` ` `// Find the count of 0s` ` ` `// and 2s in the array` ` ` `for` `(` `int` `i = ` `0` `; i < n; i++) {` ` ` `if` `(a[i] == ` `0` `) {` ` ` `zero++;` ` ` `}` ` ` `if` `(a[i] == ` `2` `) {` ` ` `two++;` ` ` `}` ` ` `}` ` ` `// Find the count of required pairs` ` ` `int` `cnt = (zero * (zero - ` `1` `)) / ` `2` ` ` `+ (two * (two - ` `1` `)) / ` `2` `;` ` ` `// Return the count` ` ` `return` `cnt;` ` ` `}` ` ` `// Driver code` ` ` `public` `static` `void` `main(String[] args)` ` ` `{` ` ` `int` `a[] = { ` `2` `, ` `2` `, ` `3` `, ` `4` `, ` `2` `, ` `6` `};` ` ` `int` `n = a.length;` ` ` `System.out.print(sumEqualProduct(a, n));` ` ` `}` `}` `// This code is contributed by Rajput-Ji` |

## Python3

`# Python 3 implementation of the approach` `# Function to return the count` `# of the required pairs` `def` `sumEqualProduct(a, n):` ` ` `zero ` `=` `0` ` ` `two ` `=` `0` ` ` ` ` `# Find the count of 0s` ` ` `# and 2s in the array` ` ` `for` `i ` `in` `range` `(n):` ` ` `if` `a[i] ` `=` `=` `0` `:` ` ` `zero ` `+` `=` `1` ` ` `if` `a[i] ` `=` `=` `2` `:` ` ` `two ` `+` `=` `1` ` ` ` ` `# Find the count of required pairs` ` ` `cnt ` `=` `(zero ` `*` `(zero ` `-` `1` `)) ` `/` `/` `2` `+` `\` ` ` `(two ` `*` `(two ` `-` `1` `)) ` `/` `/` `2` ` ` ` ` `# Return the count` ` ` `return` `cnt` ` ` `# Driver code` `a ` `=` `[ ` `2` `, ` `2` `, ` `3` `, ` `4` `, ` `2` `, ` `6` `]` `n ` `=` `len` `(a)` `print` `(sumEqualProduct(a, n))` `# This code is contributed by Ankit kumar` |

## C#

`// C# implementation of the approach` `using` `System;` `class` `GFG` `{` `// Function to return the count` `// of the required pairs` `static` `int` `sumEqualProduct(` `int` `[]a, ` `int` `n)` `{` ` ` `int` `zero = 0, two = 0;` ` ` `// Find the count of 0s` ` ` `// and 2s in the array` ` ` `for` `(` `int` `i = 0; i < n; i++)` ` ` `{` ` ` `if` `(a[i] == 0)` ` ` `{` ` ` `zero++;` ` ` `}` ` ` `if` `(a[i] == 2)` ` ` `{` ` ` `two++;` ` ` `}` ` ` `}` ` ` `// Find the count of required pairs` ` ` `int` `cnt = (zero * (zero - 1)) / 2 +` ` ` `(two * (two - 1)) / 2;` ` ` `// Return the count` ` ` `return` `cnt;` `}` `// Driver code` `public` `static` `void` `Main(String[] args)` `{` ` ` `int` `[]a = { 2, 2, 3, 4, 2, 6 };` ` ` `int` `n = a.Length;` ` ` `Console.Write(sumEqualProduct(a, n));` `}` `}` `// This code is contributed by 29AjayKumar` |

## Javascript

`<script>` `// Javascript implementation of the approach` `// Function to return the count` `// of the required pairs` `function` `sumEqualProduct(a, n)` `{` ` ` `var` `zero = 0, two = 0;` ` ` `// Find the count of 0s` ` ` `// and 2s in the array` ` ` `for` `(` `var` `i = 0; i < n; i++) {` ` ` `if` `(a[i] == 0) {` ` ` `zero++;` ` ` `}` ` ` `if` `(a[i] == 2) {` ` ` `two++;` ` ` `}` ` ` `}` ` ` `// Find the count of required pairs` ` ` `var` `cnt = (zero * (zero - 1)) / 2` ` ` `+ (two * (two - 1)) / 2;` ` ` `// Return the count` ` ` `return` `cnt;` `}` `// Driver code` `var` `a = [2, 2, 3, 4, 2, 6];` `var` `n = a.length;` `document.write( sumEqualProduct(a, n));` `// This code is contributed by importantly.` `</script>` |

**Output:**

3

**Time Complexity :** O(N)

**Auxiliary Space :** O(1)