Files
project-euler/39.fs
T
2025-08-03 20:16:55 -07:00

27 lines
593 B
FSharp

module _39
let rightTriPerimeter =
let pythagreonTriple m n =
(m * m - n * n, 2 * m * n, m * m + n * n)
let sumTriple (a,b,c) =
a + b + c
let parity a b =
(a + b) % 2 = 1
let multiples lim n =
seq { n .. n .. lim }
common.coprimeArray 33
|> Array.mapi (fun i cp ->
cp
|> Seq.filter (parity i)
|> Seq.map ((pythagreonTriple i) >> sumTriple)
|> Seq.collect (multiples 1000)
)
|> Seq.collect (fun l -> l)
|> Seq.groupBy (fun n -> n)
|> Seq.maxBy (fun g -> Seq.length (snd g))