Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- def introot(value,root):
- a = root
- b = 0
- while math.fabs(a-b) > 0:
- b = a
- a = int(1.0/root *((root-1.0)*a +value/a**(root-1.0)))
- return a
- def isperfectpower(value):
- minE,maxE,minB,maxB = 2,int(math.log(value,2)),2,introot(value,2)
- while minB**maxE != value and maxB**minE != value and minE < maxE:
- minE += 1
- maxB = introot(value,minE)
- minB += 1
- maxE = int(math.log(value,minB))
- if minB**maxE == value or maxB**minE == value:
- return True
- return False
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement