module SumOfMultiples let isMultiple factors number = List.fold (fun a x -> (a || number % x = 0)) false factors let sum (factors: int list) (upperBound: int): int = let goodFactors = List.filter (fun i -> i <> 0) factors let numbers = [ for i in 1..(upperBound - 1) -> i] List.sum (List.filter (fun el -> isMultiple goodFactors el) numbers)