Problem:
Score : 400 points

Problem Statement

Give a pair of integers (A, B) such that A^5-B^5 = X.
It is guaranteed that there exists such a pair for the given integer X.

Constraints

1 \leq X \leq 10^9

X is an integer.

There exists a pair of integers (A, B) satisfying the condition in Problem Statement.

Input

Input is given from Standard Input in the following format:

X

Output

Print A and B, with space in between.
If there are multiple pairs of integers (A, B) satisfying the condition, you may print any of them.

A B

Sample Input 1

33

Sample Output 1

2 -1

For A=2 and B=-1, A^5-B^5 = 33.

Sample Input 2

1

Sample Output 2

0 -1

Solution in Python (3.8.2) (judge verdict: Accepted)

def make_divisors(n):
    divisors = []
    for i in range(1, int(n**0.5)+1):
        if n % i == 0:
            divisors.append(i)
            if i != n // i:
                divisors.append(n//i)
    divisors.sort()
    return divisors

x = int(input())
ans = 0
k = make_divisors(x)
for i in k:
    j = x//i
    l, r = 0, x
    flag = False
    while r-l > 1:
        key = (r+l)//2
        a, b = key+i, key
        if a**4+a**3*b+a**2*b**2+a*b**3+b**4 == j:
            ans = (a, b)
            flag = True
            break
        elif(a**4+a**3*b+a**2*b**2+a*b**3+b**4) > j:
            r = key 
        else:
            l = key
    if flag:
        break
    a, b = l+i, l
    if a**4+a**3*b+a**2*b**2+a*b**3+b**4 == j:
        ans = (a, b)
        flag = True
        break
    a, b = r+i, r
    if a**4+a**3*b+a**2*b**2+a*b**3+b**4 == j:
        ans = (a, b)
        flag = True
        break

if ans == 0:
    for i in range(1, 100):
        for j in range(1, 100):
            if i**5+j**5 == x:
                ans = (i, -j)
                break
        if ans != 0:
            break
    pass

print(*ans)