from __future__ import annotations

from math import ceil, floor, sqrt



def A__  (			lowercase:     int = 2_000_000					)				->		int:
       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						:     Any         =(-1 + sqrt(1 + 8 * target / triangle_a					)) / 2
              A						:     Dict         =floor(lowercase					)
              A						:     List[Any]         =ceil(lowercase					)
              A						:     Optional[Any]         =triangle_numbers[b_floor]
              A						:     int         =triangle_numbers[b_ceil]

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

              if abs(target - triangle_b_second_guess * triangle_a					) < abs(
                  target - best_product					):
                     A						:     Tuple         =triangle_b_second_guess * triangle_a
                     A						:     Dict         =idx_a * b_ceil

       return area


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







import logging
from dataclasses import dataclass, field
from typing import Optional

from seqaseq_trainer import arg_to_scheduler

from transformers import TrainingArguments


_lowercase							:      Any      							=logging.getLogger(__name__)



@dataclass
class  SCREAMING_SNAKE_CASE_ (					lowerCAmelCase_			):
  '''simple docstring'''


  lowercase		:     Optional[float]            =				field(
      default=0.0   ,						metadata={"help": "The label smoothing epsilon to apply (if not zero)."}			)
  lowercase		:     bool            =				field(default=lowerCAmelCase_   ,						metadata={"help": "Whether to SortishSamler or not."}			)
  lowercase		:     bool            =				field(
      default=lowerCAmelCase_   ,						metadata={"help": "Whether to use generate to calculate generative metrics (ROUGE, BLEU)."}			)
  lowercase		:     bool            =				field(default=lowerCAmelCase_   ,						metadata={"help": "whether to use adafactor"}			)
  lowercase		:     Optional[float]            =				field(
      default=lowerCAmelCase_   ,						metadata={"help": "Encoder layer dropout probability. Goes into model.config."}			)
  lowercase		:     Optional[float]            =				field(
      default=lowerCAmelCase_   ,						metadata={"help": "Decoder layer dropout probability. Goes into model.config."}			)
  lowercase		:     Optional[float]            =				field(default=lowerCAmelCase_   ,						metadata={"help": "Dropout probability. Goes into model.config."}			)
  lowercase		:     Optional[float]            =				field(
      default=lowerCAmelCase_   ,						metadata={"help": "Attention dropout probability. Goes into model.config."}			)
  lowercase		:     Optional[str]            =				field(
      default="linear"   ,						metadata={"help": f'Which lr scheduler to use. Selected in {sorted(arg_to_scheduler.keys()			)}'}   ,						)






