How to find `n-th` root of a given 'x' algorithmically
def solve(x, n):
if x == 0:
return 0
lower = 0
upper = max(1, x)
mid = (lower + upper) / 2
while ((mid-lower) >= 0.001):
if (mid ** n > x):
upper = mid
else:
lower = mid
mid = (lower + upper) / 2
return round(mid, 3)
# solve(7, 3) would return 1.913
# solve(9, 2) would return 3.0