#!/usr/bin/ruby

# Test the built-in method `is_pow`;
# And also test `iroot` and `ipow`;

func is_power(n, k) {
    n.iroot(k).ipow(k) == n
}

for i in (-100 .. 100) {
    say "3: #{i}" if is_power(i, 3)
    say "4: #{i}" if is_power(i, 4)

    if (is_power(i, 3) != i.is_pow(3)) {
        die "error is_power(#{i}, 3)"
    }

    if (is_power(i, 4) != i.is_pow(4)) {
        die "error is_power(#{i}, 4)"
    }
}