import math

goal = 10.0

tempGoal = goal

rangeLow=0.0
rangeHigh=0.0

while tempGoal>0:
    lowerRoot = math.sqrt(tempGoal)
    print(str(lowerRoot))
    if(lowerRoot%1==0):
        rangeLow=lowerRoot
        rangeHigh=rangeLow+1
        break
    else:
        tempGoal-=1

if(rangeLow<=0):
    print("there is no solution")
    raise SystemExit

for x in range(1,100):    
    mid = (rangeHigh-rangeLow)/2.0
    root = rangeLow+mid
    root1 = root*root

    print("goal: "+str(goal))
    print("rangeHigh: "+str(rangeHigh))
    print("rangeLow: "+str(rangeLow))
    print("mid: "+str(mid))
    print(str(root)+" * "+str(root)+" = "+str(root1))
    
    if abs(root1 - goal) <= 0.00000000000001:
        print("goal is reached in "+str(x)+" iterations")
        break
    elif root1>goal:
        rangeHigh-=mid
    else:
        rangeLow+=mid
    print("\n")
