Counting Rectangles#
main = do
let f x = x * (x + 1) `div` 2
lmt = 2 * 10^6
print $ minimum [(abs (f x * f y - lmt), x * y) | x <- [1 .. 1000], y <- [1 .. 1000]]
OUTPUT
2772
main = do
let f x = x * (x + 1) `div` 2
lmt = 2 * 10^6
print $ minimum [(abs (f x * f y - lmt), x * y) | x <- [1 .. 1000], y <- [1 .. 1000]]
OUTPUT
2772