Windows PowerShellでProject Euler(11)

Problem 5

lcmを繰り返し適用するだけの問題です。lcmがgcmを使います。gcmはふつうに再帰で定義します。

function fold($f, $init) {
    begin   { $x = $init }
    process { $x = & $f $x $_ }
    end     { $x }
}

function gcd($m, $n) {
    if($n -eq 0) { $m } else { gcd $n ($m % $n) }
}

function lcm($m, $n) {
    $m / (gcd $m $n) * $n
}

1..20 | fold { lcm $args[0] $args[1] } 1