




def 		_lowerCamelCase					(       UpperCamelCase       ,  UpperCamelCase       ,  UpperCamelCase       ,  UpperCamelCase       ,  UpperCamelCase				)      ->		None:





  """simple docstring"""





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


def 		_lowerCamelCase					(       UpperCamelCase       ,  UpperCamelCase				)      ->		list:





  """simple docstring"""





  _lowercase:			Union[str, Any]      =     []  # type: list[int]
  _lowercase:			int      =     []  # type: list[int]
  backtrack(UpperCamelCase       ,  UpperCamelCase       ,  UpperCamelCase       ,  UpperCamelCase       ,  0				)
  return answer


def 		_lowerCamelCase					(       )      ->		None:





  """simple docstring"""





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


if __name__ == "__main__":
   import doctest

   doctest.testmod()
   main()






from math import sqrt


def 		_lowerCamelCase					(       UpperCamelCase				)      ->		list[int]:





  """simple docstring"""





  _lowercase:			Dict      =     [1]
  for i in range(2       ,  int(sqrt(UpperCamelCase				)				) + 1       ,  1				):
    if number % i == 0:
      values.append(UpperCamelCase				)
      if int(number // i				) != i:
        values.append(int(number // i				)				)
  return sorted(UpperCamelCase				)


def 		_lowerCamelCase					(       UpperCamelCase				)      ->		bool:





  """simple docstring"""





  return sum(factors(UpperCamelCase				)				) > n


def 		_lowerCamelCase					(       UpperCamelCase				)      ->		bool:





  """simple docstring"""





  _lowercase:			Dict      =     factors(UpperCamelCase				)
  _lowercase:			int      =     len(UpperCamelCase				)
  _lowercase:			Optional[int]      =     [[0 for i in range(number + 1				)] for j in range(r + 1				)]
  for i in range(r + 1				):
    _lowercase:			List[Any]      =     True

  for i in range(1       ,  number + 1				):
    _lowercase:			Optional[int]      =     False

  for i in range(1       ,  r + 1				):
    for j in range(1       ,  number + 1				):
      if j < values[i - 1]:
        _lowercase:			Optional[int]      =     subset[i - 1][j]
      else:
        _lowercase:			Optional[Any]      =     subset[i - 1][j] or subset[i - 1][j - values[i - 1]]

  return subset[r][number] != 0


def 		_lowerCamelCase					(       UpperCamelCase				)      ->		bool:





  """simple docstring"""





  return abundant(UpperCamelCase				) and not semi_perfect(UpperCamelCase				)


if __name__ == "__main__":
   import doctest

   doctest.testmod(verbose=True)
   for number in (69, 70, 71):
      print(f'''{number} is {'' if weird(number) else 'not '}weird.''')
