Product of all Subarrays of an Array - GeeksforGeeks

24 Nov, 2021
Given an array of integers arr of size N, the task is to print products of all subarrays of the array.
Examples:
Input: arr[] = {2, 4} Output: 64 Here, subarrays are [2], [2, 4], [4] Products are 2, 8, 4 Product of all Subarrays = 64
Input : arr[] = {10, 3, 7} Output : 27783000 Here, subarrays are [10], [10, 3], [10, 3, 7], [3], [3, 7], [7] Products are 10, 30, 210, 3, 21, 7 Product of all Subarrays = 27783000  
Naive Approach: A simple solution is to generate all sub-array and compute their product. 
C++
Java
Python3
C#
Javascript
// C++ program to find product// of all subarray of an array #include <bits/stdc++.h>using namespace std; // Function to find product of all subarraysvoid product_subarrays(int arr[], int n){    // Variable to store the product    int product = 1;     // Compute the product while    // traversing for subarrays    for (int i = 0; i < n; i++) {        for (int j = i; j < n; j++) {            for (int k = i; k <= j; k++)                product *= arr[k];        }    }     // Printing product of all subarray    cout << product << "\n";} // Driver codeint main(){    int arr[] = { 10, 3, 7 };     int n = sizeof(arr) / sizeof(arr[0]);     // Function call    product_subarrays(arr, n);     return 0;}
// Java program to find product// of all subarray of an arrayimport java.util.*; class GFG {     // Function to find product of all subarrays    static void product_subarrays(int arr[], int n)    {         // Variable to store the product        int product = 1;         // Compute the product while        // traversing for subarrays        for (int i = 0; i < n; i++) {            for (int j = i; j < n; j++) {                for (int k = i; k <= j; k++)                    product *= arr[k];            }        }         // Printing product of all subarray        System.out.print(product + "\n");    }     // Driver code    public static void main(String args[])    {        int arr[] = { 10, 3, 7 };        int n = arr.length;         // Function call        product_subarrays(arr, n);    }} // This code is contributed by shivanisinghss2110
# Python3 program to find product# of all subarray of an array # Function to find product of all subarraysdef product_subarrays(arr, n):     # Variable to store the product    product = 1;     # Compute the product while    # traversing for subarrays    for i in range(0, n):        for j in range(i, n):            for k in range(i, j + 1):                product *= arr[k];             # Printing product of all subarray    print(product, "\n"); # Driver codearr = [ 10, 3, 7 ]; n = len(arr); # Function callproduct_subarrays(arr, n); # This code is contributed by Code_Mech
// C# program to find product// of all subarray of an arrayusing System; class GFG {     // Function to find product of all subarrays    static void product_subarrays(int[] arr, int n)    {         // Variable to store the product        int product = 1;         // Compute the product while        // traversing for subarrays        for (int i = 0; i < n; i++) {            for (int j = i; j < n; j++) {                for (int k = i; k <= j; k++)                    product *= arr[k];            }        }         // Printing product of all subarray        Console.Write(product + "\n");    }     // Driver code    public static void Main(String[] args)    {        int[] arr = { 10, 3, 7 };        int n = arr.Length;         // Function call        product_subarrays(arr, n);    }} // This code is contributed by shivanisinghss2110
<script>  // Javascript program to find product  // of all subarray of an array     // Function to find product of all subarrays  function product_subarrays(arr, n)  {         // Variable to store the product      let product = 1;       // Compute the product while      // traversing for subarrays      for (let i = 0; i < n; i++) {          for (let j = i; j < n; j++) {              for (let k = i; k <= j; k++)                  product *= arr[k];          }      }       // Printing product of all subarray      document.write(product + "</br>");  }     let arr = [ 10, 3, 7 ];  let n = arr.length;   // Function call  product_subarrays(arr, n); // This code is contributed by divyeshrabadiya07.</script>
27783000
 
Time Complexity: O(n3)
Auxiliary Space: O(1)
Efficient Approach: An efficient approach is to use two loops and calculate the products while traversing the subarrays.Below is the implementation of the above approach:  
C++
Java
Python3
C#
Javascript
// C++ program to find product// of all subarray of an array #include <bits/stdc++.h>using namespace std; // Function to find product of all subarraysvoid product_subarrays(long long int arr[], int n){    // Variable to store the product    long long int res = 1;     // Compute the product while    // traversing for subarrays    for (int i = 0; i < n; i++) {        long long int product = 1;        for (int j = i; j < n; j++) {            product = product * arr[j];            res *= product;        }    }    // Printing product of all subarray    cout << res << "\n";} // Driver codeint main(){    long long int arr[] = { 10, 3, 7 };     int n = sizeof(arr) / sizeof(arr[0]);     // Function call    product_subarrays(arr, n);     return 0;}
// Java program to find product// of all subarray of an arrayimport java.util.*; class GFG {     // Function to find product of all subarrays    static void product_subarrays(int arr[], int n)    {        // Variable to store the product        int res = 1;         // Compute the product while        // traversing for subarrays        for (int i = 0; i < n; i++) {            int product = 1;            for (int j = i; j < n; j++) {                product = product * arr[j];                res *= product;            }        }         // Printing product of all subarray        System.out.println(res + "\n");    }     // Driver code    public static void main(String args[])    {        int arr[] = { 10, 3, 7 };         int n = arr.length;         // Function call        product_subarrays(arr, n);    }} // This code is contributed by AbhiThakur
# Python3 program to find product# of all subarray of an array # Function to find product of all subarraysdef product_subarrays(arr, n):     # Variable to store the product    res = 1;     # Compute the product while    # traversing for subarrays    for i in range(n):        product = 1        for j in range(i, n):            product *= arr[j];            res = res * product     # Printing product of all subarray    print(res); # Driver codeif __name__ == '__main__':    arr = [ 10, 3, 7 ];     n = len(arr);     # Function call    product_subarrays(arr, n); # This code is contributed by Princi Singh
// C# program to find product// of all subarray of an arrayusing System; class GFG {     // Function to find product of all subarrays    static void product_subarrays(int[] arr, int n)    {        // Variable to store the product        int res = 1;         // Compute the product while        // traversing for subarrays        for (int i = 0; i < n; i++) {            int product = 1;            for (int j = i; j < n; j++) {                product *= arr[j];                res = res * product;            }        }         // Printing product of all subarray        Console.WriteLine(res + "\n");    }     // Driver code    public static void Main(String[] args)    {        int[] arr = { 10, 3, 7 };         int n = arr.Length;         // Function call        product_subarrays(arr, n);    }} // This code is contributed by 29AjayKumar
<script> // Javascript program to find product// of all subarray of an array // Function to find product of all subarraysfunction product_subarrays(arr, n){    // Variable to store the product    var res = 1;     // Compute the product while    // traversing for subarrays    for (var i = 0; i < n; i++) {        var product = 1;        for (var j = i; j < n; j++) {            product = product * arr[j];            res *= product;        }    }    // Printing product of all subarray    document.write( res );} // Driver codevar arr = [10, 3, 7];var n = arr.length;// Function callproduct_subarrays(arr, n);  </script>
27783000
 
Time Complexity: O(n2)
Auxiliary Space: O(1)
abhaysingh290895
29AjayKumar
princi singh
pavan16081997
shivanisinghss2110
Code_Mech
architawasthi
divyeshrabadiya07
noob2000
varshagumber28
subham348
subarray
Arrays
Mathematical
Arrays
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Maximum and minimum of an array using minimum number of comparisons
Top 50 Array Coding Problems for Interviews
Stack Data Structure (Introduction and Program)
Introduction to Arrays
Multidimensional Arrays in Java
Program for Fibonacci numbers
Write a program to print all permutations of a given string
C++ Data Types
Set in C++ Standard Template Library (STL)
Coin Change | DP-7