# Product of values of all possible non-empty subsets of given Array

Given an array of size N. The task is to find the product of values of all possible non-empty subsets of the given array.

Examples:

Input: N = 2, arr[] = {3, 7}
Output: 441
All non empty subsets are:
3
7
3, 7
Product = 3 * 7 * 3 * 7 = 441

Input: N = 1, arr[] = {4}
Output: 4

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: On careful observation it can be deduced that number of occurrences of every element across all subsets is 2N-1. Therefore, in the final product, every element of the array will be multiplied to itself by 2N-1 times.

```Product = a2N-1*a2N-1********a[N-1]2N-1
```

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach ` `#include ` `using` `namespace` `std; ` ` `  `// Function to find product of all elements ` `// in all subsets ` `int` `product(``int` `a[], ``int` `n) ` `{ ` `    ``int` `ans = 1; ` `    ``int` `val = ``pow``(2, n - 1); ` `     `  `    ``for` `(``int` `i = 0; i < n; i++) { ` `        ``ans *= ``pow``(a[i], val); ` `    ``} ` `     `  `    ``return` `ans; ` `} ` ` `  `// Driver Code ` `int` `main() ` `{ ` `    ``int` `n = 2; ` `    ``int` `a[] = { 3, 7 }; ` `     `  `    ``cout << product(a, n); ` `     `  `    ``return` `0; ` `} `

## Java

 `// Java implementation of the approach  ` `class` `GFG  ` `{ ` `     `  `    ``// Function to find product of all elements  ` `    ``// in all subsets  ` `    ``static` `int` `product(``int` `a[], ``int` `n)  ` `    ``{  ` `        ``int` `ans = ``1``;  ` `        ``int` `val = (``int``)Math.pow(``2``, n - ``1``);  ` `         `  `        ``for` `(``int` `i = ``0``; i < n; i++) ` `        ``{  ` `            ``ans *= (``int``)Math.pow(a[i], val);  ` `        ``}  ` `        ``return` `ans;  ` `    ``}  ` `     `  `    ``// Driver Code  ` `    ``public` `static` `void` `main (String[] args)  ` `    ``{  ` `        ``int` `n = ``2``;  ` `        ``int` `a[] = { ``3``, ``7` `};  ` `         `  `        ``System.out.println(product(a, n));  ` `    ``}  ` `} ` ` `  `// This code is contributed by AnkitRai01 `

## Python3

 `# Python3 implementation of the approach ` ` `  `# Function to find product of  ` `# all elements in all subsets ` `def` `product(a, n): ` `    ``ans ``=` `1` `    ``val ``=` `pow``(``2``, n ``-` `1``) ` ` `  ` `  `    ``for` `i ``in` `range``(n): ` `        ``ans ``*``=` `pow``(a[i], val) ` ` `  `    ``return` `ans ` ` `  `# Driver Code ` `n ``=` `2` `a ``=` `[``3``, ``7``] ` ` `  `print``(product(a, n)) ` ` `  `# This code is contributed by mohit kumar `

## C#

 `// C# implementation of the approach  ` `using` `System; ` ` `  `class` `GFG  ` `{ ` `     `  `    ``// Function to find product of all elements  ` `    ``// in all subsets  ` `    ``static` `int` `product(``int` `[]a, ``int` `n)  ` `    ``{  ` `        ``int` `ans = 1;  ` `        ``int` `val = (``int``)Math.Pow(2, n - 1);  ` `         `  `        ``for` `(``int` `i = 0; i < n; i++) ` `        ``{  ` `            ``ans *= (``int``)Math.Pow(a[i], val);  ` `        ``}  ` `        ``return` `ans;  ` `    ``}  ` `     `  `    ``// Driver Code  ` `    ``public` `static` `void` `Main ()  ` `    ``{  ` `        ``int` `n = 2;  ` `        ``int` `[]a = { 3, 7 };  ` `         `  `        ``Console.WriteLine(product(a, n)); ` `    ``}  ` `} ` ` `  `// This code is contributed by anuj_67.. `

Output:

```441
```

Time Complexity: O(N)

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

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 Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.