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 whether 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. 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
Tests
isPP(4)
isPP(8)
isPP(14)
Good luck!
This challenge comes from bkaes on CodeWars. Thank you to CodeWars, who has licensed redistribution of this challenge under the 2-Clause BSD License!
Want to propose a challenge idea for a future post? Email yo+challenge@dev.to with your suggestions!
Top comments (3)
Not necessarily the best approach, but this works in Clojure
Python solution,
Output,
Where you say
mk = n
do you mean "m to the power of k" or "m times k"? It looks like m times k, but your challenge talks about powers.