Sha256: 8b9d136552998bda8017d7ae6a3db63f169a55f7f39fbae06671f87ffa186c45

Contents?: true

Size: 403 Bytes

Versions: 131

Compression:

Stored size: 403 Bytes

Contents

module PerfectNumbers

type Classification = Perfect | Abundant | Deficient

let sumOfFactors n = [for x in 1..n / 2 do if n % x = 0 then yield x] |> List.sum

let classify n : Classification option = 
    match n with
    | x when x <= 0 -> None
    | _ ->
        match sumOfFactors n with
        | x when x = n -> Some Perfect
        | x when x < n -> Some Deficient
        | _ -> Some Abundant

Version data entries

131 entries across 131 versions & 1 rubygems

Version Path
trackler-2.2.1.98 tracks/fsharp/exercises/perfect-numbers/Example.fs
trackler-2.2.1.97 tracks/fsharp/exercises/perfect-numbers/Example.fs
trackler-2.2.1.96 tracks/fsharp/exercises/perfect-numbers/Example.fs
trackler-2.2.1.95 tracks/fsharp/exercises/perfect-numbers/Example.fs
trackler-2.2.1.94 tracks/fsharp/exercises/perfect-numbers/Example.fs
trackler-2.2.1.93 tracks/fsharp/exercises/perfect-numbers/Example.fs
trackler-2.2.1.92 tracks/fsharp/exercises/perfect-numbers/Example.fs
trackler-2.2.1.91 tracks/fsharp/exercises/perfect-numbers/Example.fs
trackler-2.2.1.90 tracks/fsharp/exercises/perfect-numbers/Example.fs
trackler-2.2.1.89 tracks/fsharp/exercises/perfect-numbers/Example.fs
trackler-2.2.1.88 tracks/fsharp/exercises/perfect-numbers/Example.fs
trackler-2.2.1.87 tracks/fsharp/exercises/perfect-numbers/Example.fs
trackler-2.2.1.86 tracks/fsharp/exercises/perfect-numbers/Example.fs
trackler-2.2.1.85 tracks/fsharp/exercises/perfect-numbers/Example.fs
trackler-2.2.1.84 tracks/fsharp/exercises/perfect-numbers/Example.fs
trackler-2.2.1.83 tracks/fsharp/exercises/perfect-numbers/Example.fs
trackler-2.2.1.82 tracks/fsharp/exercises/perfect-numbers/Example.fs
trackler-2.2.1.81 tracks/fsharp/exercises/perfect-numbers/Example.fs
trackler-2.2.1.80 tracks/fsharp/exercises/perfect-numbers/Example.fs
trackler-2.2.1.79 tracks/fsharp/exercises/perfect-numbers/Example.fs