ScalaでProject Euler(123)

Problem 85

m×nの長方形はm(m + 1)n(n + 1) / 4個の長方形を含みます。目標の長方形の個数をNとしてmを固定すると、

n2 + n + 1 = 4N / m(m + 1)

となります。これを解いて、

n = (-1 + √(1 + 16N / m(m + 1))) / 2

これは一般に実数ではないので、[ n ]と[n + 1]の2つのどちらかのときに最もNに近くなります。