Windows PowerShellでProject Euler(35)

Problem 28

これは関数型に導くための問題ですね。数学的にも解けますが、対角線上の数を内側から外側に4つずつ列挙します。

function g($n) {
    $m = ($n - 1) / 2
    $v = 1
    $v
    foreach($k in 1..$m) {
        foreach($l in 1..4) {
            $v += $k * 2
            $v
        }
    }
}

$N = 1001
(g $N | measure -sum).sum