f :: Int -> Int f n = floor $ (sqrt (fromIntegral n - 0.5) + 1) / 2 solve1 :: Int -> Int solve1 n = let k = f n in abs ((n - 2 - (2 * k - 1)) `mod` (2 * k) - k) + k