#### Problem

*There are exactly ten ways of selecting three from five, 12345:*

*123, 124, 125, 134, 135, 145, 234, 235, 245, and 345*

*In combinatorics, we use the notation, *^{5}C_{3} = 10.

*In general,*

* *

*It is not until *`n` = 23, that a value exceeds one-million: ^{23}C_{10} = 1144066.

*How many, not necessarily distinct, values of *^{n}C_{r}, for 1 <= `n` <= 100, are greater than one-million?

#### Solution

let factorial n = if (n = 0I) then 1I else [1I..n] |> List.reduce (*)
let C n r = if r <= n then (factorial n) / ((factorial r) * (factorial (n - r))) else 0I
let answer =
[1I..100I]
|> List.collect (fun n -> [1I..n] |> List.map (fun r -> C n r))
|> List.filter (fun x -> x > 1000000I)
|> List.length