func nthroot(n, a, precision=1e-5) { var x = 1.float var prev = 0.float while ((prev-x).abs > precision) { prev = x; x = (((n-1)*prev + a/(prev**(n-1))) / n) } return x } say nthroot(5, 34) # => 2.024397458501034082599817835297912829678314204