'Taking roots with the number that user gives us

I'm coding a number guessing game.Here's the part I need help:

  • User guesses the number
  • If the number equals to some number's power or root, software will hint user.

I handled the power part, but when it comes to root, I tried those ways:

Using gmpy2

rootanswer = gmpy2.root(playerguess,guessnumber)
            elif root answer == int(root answer):
                print("Your guess is an answer of power calculation.")
*playerguess = Player's current guess
*guessnumber = the number player is trying to guess

The problem is root answer isn't an integer or a float. It's an mpfr. I searched at the web and tried to find a way to change mpfr to an integer, but I couldn't find.

Using some math to solve root:

thenumber = int(input("The number is:"))
rootpower = int(input("root:"))
powerlist = [*range(1,21,1)]

for pwr in powerlist:
    if thenumber == 2**pwr:
        answerpower = pwr - rootpower
        answer = 2**answerpower
    elif thenumber == 3**pwr:
        answerpower = pwr-rootpower
        answer = 3**answerpower

print(thenumber,rootpower,answerpower,answer)


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source