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: Accepted)

let exps_base_n_less_than x n =
  let rec aux acc =
    if acc <= x then acc :: (aux @@ ( * ) n acc)
    else [] in
  aux @@ ( * ) n n

let exp_less_than_dec x =
  let rec exps n =
    if n = 1 then [1]
    else exps_base_n_less_than x n @ exps @@ pred n
  in
  List.filter (fun n -> n <= x) @@ exps x
  |> List.sort compare
  |> List.rev

let main () =
  let x = Scanf.scanf "%d" (fun x -> x) in
  exp_less_than_dec x
  |> List.hd
  |> print_int

let () = main ()