fork download
  1. def find_root_power(n, minpower, maxpower):
  2. for pwr in range(minpower, maxpower + 1):
  3. # find root such that root**pwr == n
  4. f = n ** (1. / pwr) # float
  5. root = int(f + 0.5) # int
  6. if root**pwr == n:
  7. yield root, pwr
  8.  
  9. n = int(input("Input a number:"))
  10. print()
  11. for root, pwr in find_root_power(n, minpower=1, maxpower=5):
  12. print("root: %d pwr: %d" % (root, pwr))
  13. # Note: root=n, pwr=1 is always a solution if n is an integer
Success #stdin #stdout 0.15s 10264KB
stdin
4
stdout
Input a number:
root: 4 pwr: 1
root: 2 pwr: 2