I've been a zone leader with DZone since 2008, and I'm crazy about community. Every day I get to work with the best that JavaScript, HTML5, Android and iOS has to offer, creating apps that truly make at difference, as principal front-end architect at Avego. James is a DZone Zone Leader and has posted 639 posts at DZone. You can read more from them at their website. View Full User Profile

# Thursday Code Puzzler: Square Roots With A Twist

12.06.2012
| 3252 views |

Thursday is code puzzler day here at DZone. The idea is simple: solve the coding problem as efficiently as you can, in any language or framework that you find suitable.

Note: Even though there really is nothing stopping you from finding a solution to this on the internet, try to keep honest, and come up with your own answer.  It's all about the participation!

Do you have code puzzlers that you'd like to share with the DZone community?  If so, please submit here.

Square Roots (With A Twist)

Write a function that calculates the square root of any number, but only uses basic arithmethic such as add, subtract, multiply and divide.  Have Fun!

Catch up on all our previous puzzlers here.

Tags:

### ebenezer raj replied on Thu, 2012/12/06 - 8:59am

using q:

{{y-((y*y)-x)%2*y}[x] over 1}98 prints 9.8994949
{{y-((y*y)-x)%2*y}[x] over 1}25 prints 5

### Daniel Seidler replied on Thu, 2012/12/06 - 10:22am

Kotlin

```fun sqrt(x: Double): Double {
var xn = (x / 2 + 0.5)
64.times{ xn = (xn + x / xn) / 2 }
return xn
}```

### sun east replied on Fri, 2012/12/07 - 12:48am

Scala:

```def sqrt(x: Double): Double =
Iterator.iterate(1.0){ r => (r+x/r)/2 }.drop(100).next```

scala> sqrt(100)
res0: Double = 10.0

scala> sqrt(1000)
res1: Double = 31.622776601683793

scala> sqrt(3)
res2: Double = 1.7320508075688772