Number.prototype.squared = function() { return this * this } Array.prototype.last = function() { return this[this.length - 1] } x = 2 guess = 1 step = function() { return guess = (guess + x / guess) / 2 } guesses = [] do { guesses.push(step()) } while (Math.abs(x - guesses.last().squared()) > 0.0000000001) guesses