11 lines
266 B
Text
11 lines
266 B
Text
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
|