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 Python (3.4.3) (judge verdict: Accepted)

def factorization(n):
    s = set()
    temp = n
    for i in range(2, int(-(-n**0.5//1))+1):
        if temp%i==0:
            cnt=0
            while temp%i==0:
                cnt+=1
                temp //= i
            s.add(cnt)

    if temp!=1:
        s.add(1)

    if s==set():
        s.add(1)

    return s
  
n = int(input())
if n < 4:
  print(1)
else:
  for i in range(n, 0, -1):
    s = factorization(i)
    if len(s)==1 and s.pop()>=2:
        print(i)
        break