알고리즘 문제/CodeWar
What's a Perfect Power anyway?
BEstyle
2022. 10. 20. 16:18
DESCRIPTION:
A perfect power is a classification of positive integers:
In mathematics, a perfect power is a positive integer that can be expressed as an integer power of another positive integer. More formally, n is a perfect power if there exist natural numbers m > 1, and k > 1 such that mk = n.
Your task is to check wheter a given integer is a perfect power. If it is a perfect power, return a pair m and k with mk = n as a proof. Otherwise return Nothing, Nil, null, NULL, None or your language's equivalent.
Note: For a perfect power, there might be several pairs. For example 81 = 3^4 = 9^2, so (3,4) and (9,2) are valid solutions. However, the tests take care of this, so if a number is a perfect power, return any pair that proves it.
Examples
isPP(4) => [2,2]
isPP(9) => [3,2]
isPP(5) => None
def isPP(n):
even=False
if n%2==0:
even=True
max=round(n**(1/2))+1
if even==True:
for i in range(2,max):
for j in range(2,max,2):
if j**i==n:
return [j,i]
else:
for i in range(2,max):
for j in range(3,max,2):
if j**i==n:
return [j,i]
return None