code: #!/usr/bin/env python
  
  import numpy
  
  
  class Point:
      """Represents a point in 2D."""
      def __init__(self, x, y):
          self.x = x
          self.y = y
  
  
  def euclidean_dist(p1, p2):
      """Euclidean distance of two 2D points."""
      from math import sqrt
      return sqrt((p1.x-p2.x)**2 + (p1.y-p2.y)**2)
  
  
  def get_min_dist(p1, precision=0.001, start_x=0, end_x=3):
      """Get x of point on (x,x^2) that has minimal distance to given Point p."""
      min_dist = -1
      for x in numpy.arange(start_x, end_x, precision):
          p2 = Point(x, x**2)
          dist = euclidean_dist(p1, p2)
          if min_dist == -1 or dist < min_dist:
              min_dist = dist
      return min_dist
  
  """for i in numpy.arange(0, 3, 0.01):
      min_dist = get_min_dist(Point(0, i))
      if abs(i-min_dist) < 0.005:
          print(i, min_dist)"""
  
  print(get_min_dist(Point(0, 4.25), precision=0.001, start_x=0, end_x=3))
  # print(euclidean_dist(Point(0,5),Point(2, 2**2)))
  
  # print(get_min_dist(5, 0.00001, 2, 3))
  
apis: numpy.arange