[back]

Perfect Powers

Implement the function

val is_perfect_pow : int -> int -> bool

so that is_perfect_pow i n is true if and only if there is an integer \(k\) such that \(k^i = n\).

Examples

let _ = assert (is_perfect_pow 1 16)
let _ = assert (is_perfect_pow 2 16)
let _ = assert (not (is_perfect_pow 3 16))
let _ = assert (is_perfect_pow 4 16)
let _ = assert (is_perfect_pow 3 (-8))