Open In App

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 
Product = 3 * 7 * 3 * 7 = 441
Input: N = 1, arr[] = {4} 
Output:
 

 

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 = a[0]2N-1*a[1]2N-1********a[N-1]2N-1

Below is the implementation of the above approach: 
 




// C++ implementation of the approach
#include <bits/stdc++.h>
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 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 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# 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..




<script>
 
// Javascript implementation of the approach
 
// Function to find product of all elements
// in all subsets
function product(a, n)
{
    var ans = 1;
    var val = Math.pow(2, n - 1);
     
    for (var i = 0; i < n; i++) {
        ans *= Math.pow(a[i], val);
    }
     
    return ans;
}
 
// Driver Code
var n = 2;
a = [ 3, 7 ]
  
document.write(product(a, n));
 
</script>

Output: 
441

 

Time Complexity: O(N)

Auxiliary Space: O(1)
 


Article Tags :