Problem 9

Problem 9

module Problem_0009

(*
【問題】
ピタゴラスの三つ組(ピタゴラスの定理を満たす自然数)とはa<b<cで
a&#178; + b&#178; = c&#178;
を満たす数の組である.
例えば, 3&#178; + 4&#178; = 9 + 16 = 25 = 5&#178;である.
a + b + c = 1000となるピタゴラスの三つ組が一つだけ存在する. このa,b,cの積を計算しなさい.
A. (200, 375, 425)
*)

let check (a,b,c) =
    (a + b + c = 1000)
    && (((*)a a) + ((*)b b) = ((*)c c))
let parm = seq {
    for a in 1..1000 do
        for b in a..1000 do
            let c = 1000 - a - b
            yield (a,b,c)
}

let run() =
    // 68 ms
    parm |> Seq.find check

//    // 75 ms
//    parm
//    |> Seq.skipWhile (check>>not)
//    |> Seq.head