


import math
from timeit import timeit







def  _lowerCamelCase(			lowercase__			)		->			int:

		'''simple docstring'''







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







def  _lowerCamelCase(			lowercase__			)		->			int:

		'''simple docstring'''







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







def  _lowerCamelCase(			lowercase__			)		->			int:

		'''simple docstring'''







		return len(str(abs(lowerCamelCase__			)			)			)







def  _lowerCamelCase(			)		->			None:

		'''simple docstring'''







		from collections.abc import Callable

		def benchmark_a_function(lowercase__     ,				lowercase__			) -> None:
				__lowercase=    F'{func.__name__}({value})'
				__lowercase=    timeit(F'__main__.{call}'     ,				setup='import __main__'			)
				print(F'{call}: {func(lowerCamelCase__			)} -- {timing} seconds'			)

		for value in (2_6_2_1_4_4, 1_1_2_5_8_9_9_9_0_6_8_4_2_6_2_4, 1_2_6_7_6_5_0_6_0_0_2_2_8_2_2_9_4_0_1_4_9_6_7_0_3_2_0_5_3_7_6):
				for func in (num_digits, num_digits_fast, num_digits_faster):
						benchmark_a_function(lowerCamelCase__     ,				lowerCamelCase__			)
				print()


if __name__ == "__main__":
	import doctest

	doctest.testmod()
	benchmark()










def  _lowerCamelCase(			lowercase__			)		->			str:

		'''simple docstring'''







		return " ".join([word[::-1] for word in input_str.split()]			)


if __name__ == "__main__":
	import doctest

	doctest.testmod()






