def   lowerCAmelCase_ (				__lowerCAmelCase		,					__lowerCAmelCase		,					__lowerCAmelCase		,					__lowerCAmelCase		,					__lowerCAmelCase						)->  None:






      '''simple docstring'''





      if target == 0:
            answer.append(path.copy()						)
      else:
            for index in range(__lowerCAmelCase		,					len(__lowerCAmelCase						)						):
                  if target >= candidates[index]:
                        path.append(candidates[index]						)
                        backtrack(__lowerCAmelCase		,					__lowerCAmelCase		,					__lowerCAmelCase		,					target - candidates[index]		,					__lowerCAmelCase						)
                        path.pop(len(__lowerCAmelCase						) - 1						)





def   lowerCAmelCase_ (				__lowerCAmelCase		,					__lowerCAmelCase						)->  list:






      '''simple docstring'''





      UpperCAmelCase    : Union[str, Any]      =[]  # type: list[int]
      UpperCAmelCase    : List[str]      =[]  # type: list[int]
      backtrack(__lowerCAmelCase		,					__lowerCAmelCase		,					__lowerCAmelCase		,					__lowerCAmelCase		,					0						)
      return answer





def   lowerCAmelCase_ (				)->  None:






      '''simple docstring'''





      print(combination_sum([-8, 2.3, 0]		,					1						)						)


if __name__ == "__main__":
     import doctest

     doctest.testmod()
     main()

import math





def   lowerCAmelCase_ (				__lowerCAmelCase						)->  list[int]:






      '''simple docstring'''





      if not isinstance(__lowerCAmelCase		,					__lowerCAmelCase						):
            UpperCAmelCase    : Union[str, Any]      =f'''Input value of [number={number}] must be an integer'''
            raise TypeError(__lowerCAmelCase						)
      if number < 1:
            UpperCAmelCase    : Dict      =f'''Input value of [number={number}] must be a positive integer'''
            raise ValueError(__lowerCAmelCase						)
      UpperCAmelCase    : Dict      =[number]
      while number != 1:
            if number % 2 == 0:
                  UpperCAmelCase    : Optional[Any]      =math.floor(math.sqrt(__lowerCAmelCase						)						)
            else:
                  UpperCAmelCase    : List[str]      =math.floor(
                      math.sqrt(__lowerCAmelCase						) * math.sqrt(__lowerCAmelCase						) * math.sqrt(__lowerCAmelCase						)						)
            sequence.append(__lowerCAmelCase						)
      return sequence


if __name__ == "__main__":
     import doctest

     doctest.testmod()
