27 lines
593 B
FSharp
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))
|