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 C++ (GCC 9.2.1) (judge verdict: Accepted)

#include <bits/stdc++.h>
using namespace std;
bool isValid(int value){
    bool ret = false;
    for(int i = 2; i <= (value/2); i++){
        int tmp = value;
        while(true){
            if(tmp%i==0){
                tmp/=i;
            }else{
                if(tmp==1){
                    ret = true;
                    break;
                }else{
                    break;
                }
            }
        }
    }
    return ret;
}
int main(){
    int x;
    cin >> x;
    int ans = 1;
    for(int i = x; i > 1; i--){
        if(isValid(i)){
            ans = i;
            break;
        }
    }
    cout << ans << endl;
}