#### Problem

*Consider the fraction, n/d, where n and d are positive integers. If n<d and HCF(n,d)=1, it is called a reduced proper fraction.*

*If we list the set of reduced proper fractions for d <= 8 in ascending order of size, we get:*

*1/8, 1/7, 1/6, 1/5, 1/4, 2/7, 1/3, ***3/8, 2/5, 3/7**, 1/2, 4/7, 3/5, 5/8, 2/3, 5/7, 3/4, 4/5, 5/6, 6/7, 7/8

*It can be seen that there are 3 fractions between 1/3 and 1/2.*

*How many fractions lie between 1/3 and 1/2 in the sorted set of reduced proper fractions for d 12,000?*

*Note: The upper limit has been changed recently.*

#### Solution

open System.Numerics
// for each d, get the number of proper fractions that lie between 1/3 and 1/2
let getFractionsCount d =
[1I..d-1I]
|> Seq.skipWhile (fun n -> n * 3I <= d)
|> Seq.takeWhile (fun n -> n * 2I < d)
|> Seq.filter (fun n -> BigInteger.GreatestCommonDivisor(n, d) = 1I)
|> Seq.length
// ignoring 1-4, get the number of desired fractions for each dand add them up
let answer = [4I..12000I] |> List.map getFractionsCount |> List.sum