Problem:
Score : 200 points

Problem Statement

You are given a positive integer X.
Find the largest perfect power that is at most X.
Here, a perfect power is an integer that can be represented as b^p, where b is an integer not less than 1 and p is an integer not less than 2.

Constraints

1 ≤ X ≤ 1000

X is an integer.

Input

Input is given from Standard Input in the following format:

X

Output

Print the largest perfect power that is at most X.

Sample Input 1

10

Sample Output 1

9

There are four perfect powers that are at most 10: 1, 4, 8 and 9.
We should print the largest among them, 9.

Sample Input 2

1

Sample Output 2

1

Sample Input 3

999

Sample Output 3

961

Solution in OCaml (4.02.3) (judge verdict: Wrong Answer)

let main () =
  let rec expi a b = if b = 1 then a else expi (a*a) (b-1) in
  let x = Scanf.scanf "%d\n" (fun a -> a) in
  let xs = ref [1] in
  let rec minexp x i acc = if expi i acc <= x then minexp x i (acc+1) else expi i (acc-1) in
  for i = 2 to int_of_float (sqrt (float_of_int x)) + 1 do
    xs := minexp x i 2 :: !xs;
  done;
  xs := List.sort (fun a b -> (-1 * compare a b)) !xs;
  print_int @@ List.hd !xs

let _ = main ()