13 lines
247 B
Smalltalk
13 lines
247 B
Smalltalk
Number extend [
|
|
nthRoot: n [
|
|
|x0 m x1|
|
|
x0 := (self / n) asFloatD.
|
|
m := n - 1.
|
|
[true] whileTrue: [
|
|
x1 := ( (m * x0) + (self/(x0 raisedTo: m))) / n.
|
|
((x1 - x0) abs) < ((x0 * 1e-9) abs)
|
|
ifTrue: [ ^ x1 ].
|
|
x0 := x1
|
|
]
|
|
]
|
|
].
|