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.42.0) (judge verdict: Wrong Answer)

use proconio::{input, fastout};
use proconio::marker::{Chars};
use proconio::marker::Usize1;
use std::cmp::*;

macro_rules! debug {
      ($($a:expr),*) => {
          eprintln!(concat!($(stringify!($a), " = {:?}, "),*), $($a),*);
    }
}

#[fastout]
fn main() {
    input!{
        x: usize,
    }

    if x==1 {
        println!("{}", 1);
        return;
    }

    for i in (1..x+1).rev() {
        let mut tmp: Vec<usize> = vec![0;i+5];
        for j in 2..i+1 {
            let mut a = i;
            if i%j==0 {
                while a%j==0 {
                    tmp[j] += 1;
                    a /= j;
                    debug!(a);
                } 
            }
        }
        tmp.sort();
        tmp.reverse();
        debug!(tmp);
        let mut ok = false;
        if tmp[0]>=2 {
            ok = true;
            for k in 2..tmp.len() {
                if tmp[k]!=0 {
                    ok = false;
                }
            }
        }
        if ok {
            println!("{}", i);
            return;
        }
    }

}