def least_squares(x, y):
n = len(x)
mean_x = sum(x) / n
mean_y = sum(y) / n
numerator = sum((x[i] - mean_x) * (y[i] - mean_y) for i in range(n))
denominator = sum((xi - mean_x) ** 2 for xi in x)
slope = numerator / denominator
intercept = mean_y - slope * mean_x
return slope, intercept
distance_km = [2, 5, 8, 10, 14, 18]
delivery_min = [12, 20, 29, 35, 45, 58]
slope, intercept = least_squares(distance_km, delivery_min)
print("slope =", round(slope, 3), " intercept =", round(intercept, 3))