diff --git a/Maths/SquareRoot.js b/Maths/SquareRoot.js new file mode 100644 index 000000000..be70502da --- /dev/null +++ b/Maths/SquareRoot.js @@ -0,0 +1,19 @@ +/* +* Author: Rak Laptudirm +* +* https://en.wikipedia.org/wiki/Newton%27s_method +* +* Finding the square root of a number using Newton's method. +*/ + +function sqrt (num, precision = 10) { + if (!Number.isFinite(num)) { throw new TypeError(`Expected a number, received ${typeof num}`) } + if (!Number.isFinite(precision)) { throw new TypeError(`Expected a number, received ${typeof precision}`) } + let sqrt = 1 + for (let i = 0; i < precision; i++) { + sqrt -= (sqrt * sqrt - num) / (2 * sqrt) + } + return sqrt +} + +export { sqrt }