def sqrt(n, m)
nn = n**2
a, b = 1.0, n
a, b = b, a if a > b
aa, bb = a**2, b**2
key = 1.0/ (10**m)
while b - a > key
mid = (b + a) / 2
midmid = mid**2
if midmid < n
aa = midmid
a = mid
elsif midmid > n
bb = midmid
b = mid
else
a = mid
b = mid
end
end
return a
end
# TEST
puts sqrt(0.5, 10)
puts 0.5 **0.5
puts
puts sqrt(2, 10)
puts 2 **0.5