Problema con Array, proposto da Uber

Questo problema è stato proposto da Uber durante un colloquio.

Dato un array di numeri interi, restituisci un nuovo array in modo tale che ogni elemento all’indice i del nuovo array sia il prodotto di tutti i numeri nell’array originale tranne quello in i.

Per esampio, se il nostro input è [1, 2, 3, 4, 5], ci si aspetterà che l’output sia [120, 60, 40, 30, 24].

Se l’input è [3, 2, 1], ci si aspetterà che l’output sia [2, 3, 6].