





'''simple docstring'''


import math


def 	__a(SCREAMING_SNAKE_CASE_  :					int    ):



    '''simple docstring'''





    if not isinstance(SCREAMING_SNAKE_CASE_		,       SCREAMING_SNAKE_CASE_    ):
        _lowerCAmelCase				=      F'''Input value of [number={number}] must be an integer'''
        raise TypeError(SCREAMING_SNAKE_CASE_    )

    if number < 1:
        _lowerCAmelCase				=      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:
        _lowerCAmelCase				=      int(math.log(number // 3		,       2    )    ) + 2

        _lowerCAmelCase				=      [3, 5]
        _lowerCAmelCase				=      2
        _lowerCAmelCase				=      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):
              _SCREAMING_SNAKE_CASE     :   Optional[Any]	 =							0
              try:
                     _SCREAMING_SNAKE_CASE     :   int	 =							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 	__a(SCREAMING_SNAKE_CASE_  :					str		,       SCREAMING_SNAKE_CASE_  :					bool = False    ):



    '''simple docstring'''





    if not isinstance(SCREAMING_SNAKE_CASE_		,       SCREAMING_SNAKE_CASE_    ):
        _lowerCAmelCase				=      F'''Expected string as input, found {type(SCREAMING_SNAKE_CASE_    )}'''
        raise ValueError(SCREAMING_SNAKE_CASE_    )
    if not isinstance(SCREAMING_SNAKE_CASE_		,       SCREAMING_SNAKE_CASE_    ):
        _lowerCAmelCase				=      F'''Expected boolean as use_pascal parameter, found {type(SCREAMING_SNAKE_CASE_    )}'''
        raise ValueError(SCREAMING_SNAKE_CASE_    )

    _lowerCAmelCase				=      input_str.split("_"    )

    _lowerCAmelCase				=      0 if use_pascal else 1

    _lowerCAmelCase				=      words[start_index:]

    _lowerCAmelCase				=      [word[0].upper() + word[1:] for word in words_to_capitalize]

    _lowerCAmelCase				=      "" if use_pascal else words[0]

    return "".join([initial_word, *capitalized_words]    )


if __name__ == "__main__":
       from doctest import testmod

       testmod()


