package main
import (
"fmt"
)
func square(x float64) float64 {
return x*x
}
func abs(x float64) float64 {
ret := 0.0
if x >= 0 {
ret = x
} else {
ret = -x
}
return ret
}
func enough(x,y float64) bool {
const tolerance = 0.0001
return abs(x-y) > tolerance
}
func Sqrt(x float64) float64 {
count := 0
z := 1.0
for pre_z := 0.0 ; enough(pre_z,z);{
pre_z = z
count++
z -= ((square(z) - x)/(2*z))
}
fmt.Println(count)
return z
}
func main() {
for i := 2; i<10; i++ {
n := float64(i)
fmt.Println(Sqrt(n))
}
}