def getProductOfAllOtherElements(numbers):
    # Generate prefix products
    prefixProducts = [0] * len(numbers)
    for i in range(len(numbers)):
        if i == 0:
            prefixProducts[i] = numbers[i]
        else:
            prefixProducts[i] = prefixProducts[i - 1] * numbers[i]
    # Generate suffix products
    suffixProducts = [0] * len(numbers)
    numbers.reverse()
    for i in range(len(numbers)):
        if i == 0:
            suffixProducts[i] = numbers[i]
        else:
            suffixProducts[i] = suffixProducts[i - 1] * numbers[i]
    suffixProducts.reverse()
    numbers.reverse()
    # Generate result from the product of prefixes and suffixes
    result =  [0] * len(numbers)
    for i in range(len(numbers)):
        if i == 0:
            result[i] = suffixProducts[i + 1]
        elif i == len(numbers) - 1:
            result[i] = prefixProducts[i - 1]
        else:
            result[i] = prefixProducts[i - 1] * suffixProducts[i + 1]
    return result

def printSeparator(size = 64):
    print('-' * size)
    
def evaluate(input, expectedOutput):
    result = getProductOfAllOtherElements(input)
    print('Input:', input)
    print('ExpectedOutput:', expectedOutput)
    print('Result:', result)
    print('IsCorrect:', result == expectedOutput)
    

printSeparator()
evaluate([3, 2, 1], [2, 3, 6])
printSeparator()
evaluate([1, 2, 3, 4, 5], [120, 60, 40, 30, 24])
printSeparator()

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: