Problem:
Score : 200 points

Problem Statement

Find the largest square number not exceeding N. Here, a square number is an integer that can be represented as the square of an integer.

Constraints

1 \leq N \leq 10^9

N is an integer.

Input

Input is given from Standard Input in the following format:

N

Output

Print the largest square number not exceeding N.

Sample Input 1

10

Sample Output 1

9

10 is not square, but 9 = 3 × 3 is. Thus, we print 9.

Sample Input 2

81

Sample Output 2

81

Sample Input 3

271828182

Sample Output 3

271821169

Solution in Haskell (GHC 7.10.3) (judge verdict: Runtime Error)

import Data.List

main = do
  x <- readLn
  print $ head $ solve x (1, x)

solve x (a, b) = unfoldr f (a, b)
  where
    f (a, b)
      | a == b = Nothing
      | a + 1 == b =Nothing
      | c * c < x = Just (c, (c, b))
      | otherwise = Just (a, (a, c))
    c = (a + b) `div` 2