Last Updated: 10 Sep, 2020

# Mindbending Product

Easy

## Problem statement

#### For Example:

``````For an array {1, 2, 3, 4, 5}:
The required product array generated from the given array is {120, 60, 40, 30, 24 }

This can be generated in the following manner:

For generating 120 we have 2 * 3 * 4 * 5 i.e. the product of other array elements except 1.
For generating 60 we have 1 * 3 * 4 * 5  i.e. the product of other array elements except 2.
For generating 40 we have 1 * 2 * 4 * 5  i.e. the product of other array elements except 3.
For generating 30 we have 1 * 2 * 3 * 5  i.e. the product of other array elements except 4.
For generating 24 we have 1 * 2 * 3 * 4  i.e. the product of other array elements except 5.
``````
##### Input format:
``````The first line contains an Integer 'T' which denotes the number of test cases/queries to be run.
Then the test cases follow.

The first line of input for each test case/query contains an integer N representing the size of the array.

The second line of input for each test case/query contains N space-separated integers representing the elements of the array.
``````
##### Output Format:
``````For each test case, print 'N' single space-separated integers denoting elements of the product array P.

Output for every test case will be printed in a separate line.
``````
##### Note:
``````1. You do not need to print anything, it has already been taken care of. Just implement the function.
2. The value of P[i] will fit into a 64-bit data type.
``````
##### Constraints:
``````1 <= T <= 50
1 <= N <= 10
1 <= ARR [i] <= 20

Time Limit: 1 sec
``````

## Approaches

### 01 Approach

• Create an array ‘P’ of size N.
• If n = 1 then initialize P[0]=0 and return.
• Run a loop from i = 0 to i = N-1, and initialize a variable currentProduct = 1 and run another nested loop from j = 0 to j = N-1.
• If i == j skip this element
• Otherwise CURRENT_PRODUCT *= ARR[j]
• Now assign the CURRENT_PRODUCT at P[i]
• P[i] = CURRENT_PRODUCT
• Now P array has the required answer, therefore, return the P array.