

'''simple docstring'''




import math


def    lowerCamelCase__		(    SCREAMING_SNAKE_CASE   : int    ):

  if not isinstance(SCREAMING_SNAKE_CASE							, SCREAMING_SNAKE_CASE    ):
    UpperCAmelCase    				=						f'''Input value of [number={number}] must be an integer'''
    raise TypeError(SCREAMING_SNAKE_CASE    )

  if number < 1:
    UpperCAmelCase    				=						f'''Input value of [number={number}] must be > 0'''
    raise ValueError(SCREAMING_SNAKE_CASE    )
  elif number == 1:
    return 3
  elif number == 2:
    return 5
  else:
    UpperCAmelCase    				=						int(math.log(number // 3							, 2    )    ) + 2

    UpperCAmelCase    				=						[3, 5]
    UpperCAmelCase    				=						2
    UpperCAmelCase    				=						3
    for block in range(1							, SCREAMING_SNAKE_CASE    ):
      for _ in range(SCREAMING_SNAKE_CASE    ):
        proth_list.append(2 ** (block + 1) + proth_list[proth_index - 1]    )
        proth_index += 1
      increment *= 2

  return proth_list[number - 1]


if __name__ == "__main__":
  import doctest

  doctest.testmod()

  for number in range(11):
    _a					:			int							=    0
    try:
      _a					:			List[str]							=    proth(number)
    except ValueError:
      print(F'''ValueError: there is no {number}th Proth number''')
      continue

    print(F'''The {number}th Proth number: {value}''')





'''simple docstring'''




def    lowerCamelCase__		(    SCREAMING_SNAKE_CASE   : int = 1000    ):
  UpperCAmelCase    				=						-1
  UpperCAmelCase    				=						0
  for a in range(1							, n // 3    ):
    # Solving the two equations a**2+b**2=c**2 and a+b+c=N eliminating c
    UpperCAmelCase    				=						(n * n - 2 * a * n) // (2 * n - 2 * a)
    UpperCAmelCase    				=						n - a - b
    if c * c == (a * a + b * b):
      UpperCAmelCase    				=						a * b * c
      if candidate >= product:
        UpperCAmelCase    				=						candidate
  return product


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


