




from __future__ import annotations

from math import ceil, floor, sqrt







def 				lowerCAmelCase_	(     snake_case_ = 2000000     ):
      _A							:     list[int]			=						[0]
      _A							:     int

      for idx in range(1,ceil(sqrt(target * 2     ) * 1.1     )     ):
            triangle_numbers.append(triangle_numbers[-1] + idx     )

      # we want this to be as close as possible to target
      _A							:     int			=						0
      # the area corresponding to the grid that gives the product closest to target
      _A							:     int			=						0
      # an estimate of b, using the quadratic formula
      _A							:     float
      # the largest integer less than b_estimate
      _A							:     int
      # the largest integer less than b_estimate
      _A							:     int
      # the triangle number corresponding to b_floor
      _A							:     int
      # the triangle number corresponding to b_ceil
      _A							:     int

      for idx_a, triangle_a in enumerate(triangle_numbers[1:],1     ):
            _A							:     Dict			=						(-1 + sqrt(1 + 8 * target / triangle_a     )) / 2
            _A							:     Optional[int]			=						floor(snake_case_     )
            _A							:     List[str]			=						ceil(snake_case_     )
            _A							:     Optional[int]			=						triangle_numbers[b_floor]
            _A							:     Tuple			=						triangle_numbers[b_ceil]

            if abs(target - triangle_b_first_guess * triangle_a     ) < abs(
                target - best_product     ):
                  _A							:     Union[str, Any]			=						triangle_b_first_guess * triangle_a
                  _A							:     Optional[Any]			=						idx_a * b_floor

            if abs(target - triangle_b_second_guess * triangle_a     ) < abs(
                target - best_product     ):
                  _A							:     int			=						triangle_b_second_guess * triangle_a
                  _A							:     Optional[int]			=						idx_a * b_ceil

      return area


if __name__ == "__main__":
  print(f"""{solution() = }""")








def lowerCamelCase__    (							)      ->				int:
   return [
       a * b * (1000 - a - b)
       for a in range(1       ,      999       )
       for b in range(snake_case_       ,      999       )
       if (a * a + b * b == (1000 - a - b) ** 2)
   ][0]


if __name__ == "__main__":
    print(F'{solution() = }')

