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 Rust (1.15.1) (judge verdict: Accepted)

use std::io;

fn main() {
    let mut buf = String::new();
    io::stdin().read_line(&mut buf).unwrap();
    let x: u32 = buf.trim().parse().unwrap();

    let mut max = 1;
    for i in 2..x {
        let mut val = 1;
        let mut power = 0;
        loop {
            val = val * i;
            if val > x {
                if val/i > max && power > 1 {
                    max = val/i;
                }
                break;
            }
            power += 1;
        }
    }

    println!("{}", max)
}