

"""simple docstring"""

import math
from timeit import timeit





def 				__UpperCamelCase   (    a__: int			)				->			int:




					"""simple docstring"""



					__lowercase												=			0
					__lowercase												=			abs(a__			)
					while True:
										__lowercase												=			n // 10
										digits += 1
										if n == 0:
															break
					return digits





def 				__UpperCamelCase   (    a__: int			)				->			int:




					"""simple docstring"""



					return 1 if n == 0 else math.floor(math.log(abs(a__			) ,	10			) + 1			)





def 				__UpperCamelCase   (    a__: int			)				->			int:




					"""simple docstring"""



					return len(str(abs(a__			)			)			)





def 				__UpperCamelCase   (    )				->			None:




					"""simple docstring"""



					from collections.abc import Callable

					def benchmark_a_function(a__: Callable ,	a__: int			) -> None:
										__lowercase												=			f'''{func.__name__}({value})'''
										__lowercase												=			timeit(f'''__main__.{call}''' ,	setup='''import __main__'''			)
										print(f'''{call}: {func(a__			)} -- {timing} seconds'''			)

					for value in (26_21_44, 11_25_89_99_06_84_26_24, 1_26_76_50_60_02_28_22_94_01_49_67_03_20_53_76):
										for func in (num_digits, num_digits_fast, num_digits_faster):
															benchmark_a_function(a__ ,	a__			)
										print()


if __name__ == "__main__":
							import doctest

							doctest.testmod()
							benchmark()





"""simple docstring"""

def 				__UpperCamelCase   (    a__: list ,	a__: list ,	a__: list ,	a__: int ,	a__: int			)				->			None:




					"""simple docstring"""



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





def 				__UpperCamelCase   (    a__: list ,	a__: int			)				->			list:




					"""simple docstring"""



					__lowercase												=			[]  # type: list[int]
					__lowercase												=			[]  # type: list[int]
					backtrack(a__ ,	a__ ,	a__ ,	a__ ,	0			)
					return answer





def 				__UpperCamelCase   (    )				->			None:




					"""simple docstring"""



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


if __name__ == "__main__":
							import doctest

							doctest.testmod()
							main()


