**Presently sponsored by Serverless Guru:**Your guide to cloud excellence, helping you every step of your serverless journey, including team training, pattern development, mass service migrations, architecting, and developing new solutions. Speak to a Guru today.

#### 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