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 (Clang 3.8.0) (judge verdict: Accepted)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
typedef long long ll;

int ft_sqrt(int nb)
{
	int i = 1;
	int cnt = 0;
	while (i <= nb)
	{
		if (i % 2)
		{
			nb -= i;
			cnt++;
		}
		i++;
	}
	// if (nb == 0)
		return cnt;
	// return 0;
}

int main()
{
	int x;
	scanf("%d", &x);
	int max = 0;
	int j,k,i = 1;
	int n = 1;
	while (i <= x)
	{
		// printf("%d : %d\n", i, ft_sqrt(i));
		j = 0;
		while (j <= sqrt(i))
		{
			n = 1;
			k = 0;
			while (k < x)
			{
				n *= j;
				if (n == i)
				{
					if (i > max)
						max = i;
					break ;
				}
				k++;
			}
			j++;
		}
		i++;
	}
	printf("%d", max);
	return (0);
}