fork download
  1. def my_sqrt(n):
  2.  
  3. def midpoint(a, b):
  4. return a + (b - a)/2
  5.  
  6. left = 0.0
  7. right = float(n)
  8. approx = midpoint(left, right)
  9. while abs(approx*approx - n) > 0.0000000000001:
  10. if approx*approx < n:
  11. left = approx
  12. else:
  13. right = approx
  14. approx = midpoint(left, right)
  15. return approx
  16.  
  17. def main():
  18. x = 2
  19. y = my_sqrt(x)
  20. print("sqrt("+str(x)+") = "+str(y))
  21.  
  22. if __name__ == '__main__':
  23. main()
  24.  
Success #stdin #stdout 0.02s 27704KB
stdin
Standard input is empty
stdout
sqrt(2) = 1.4142135623731065