let multiplyOthers (input : int[]) =
let front = Array.zeroCreate input.Length
let rear = Array.zeroCreate input.Length
rear.[input.Length-1] <- 1
for i = 1 to input.Length-1 do
front.[i] <- front.[i-1] * input.[i-1]
for i in input.Length-2 .. -1 .. 0 do
rear.[i] <- rear.[i+1] * input.[i+1]
|> Seq.map (fun (f, r) -> f * r)
multiplyOthers [| 2;3;1;4|] |> printfn "%A"