private static int[] arrayMultiplier(final int[] input) {

        /*
         * Create a new array as follows:
         *
         * input  = a  b  c
         * xArray = 1  a  a*b
         */
        int[] xArray = new int[input.length];
        xArray[0] = 1;
        for (int i = 1; i < input.length; ++i) {
            xArray[i] = xArray[i - 1] * input[i - 1];
            mIterations++;
        }

        /*
         * Create a new array as follows:
         *
         * input  = a    b  c
         * yArray = b*c  c  1
         */
        int[] yArray = new int[input.length];
        yArray[input.length - 1] = 1;
        for (int i = input.length - 2; i >= 0; --i) {
            yArray[i] = yArray[i + 1] * input[i + 1];
            mIterations++;
        }

        /*
         * Multiply xArray by yArray:
         *
         * input  = a    b    c
         * xArray = 1    a    a*b
         * yArray = b*c  c    1
         * result = b*c  a*c  a*b
         */
        final int[] result = new int[input.length];
        for (int i = 0; i < input.length; ++i) {
            result[i] = xArray[i] * yArray[i];
            mIterations++;
        }

        return result;
    }