

"""simple docstring"""




import math
from timeit import timeit
def   __SCREAMING_SNAKE_CASE		(		lowercase__ ):
					"""simple docstring"""
					A     =   0
					A     =   abs(lowercase__ )
					while True:
										A     =   n // 10
										digits += 1
										if n == 0:
															break
					return digits
def   __SCREAMING_SNAKE_CASE		(		lowercase__ ):
					"""simple docstring"""
					return 1 if n == 0 else math.floor(math.log(abs(lowercase__ )     ,				10 ) + 1 )
def   __SCREAMING_SNAKE_CASE		(		lowercase__ ):
					"""simple docstring"""
					return len(str(abs(lowercase__ ) ) )
def   __SCREAMING_SNAKE_CASE		(		):
					"""simple docstring"""
					from collections.abc import Callable

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

					for value in (262_144, 1_125_899_906_842_624, 1_267_650_600_228_229_401_496_703_205_376):
										for func in (num_digits, num_digits_fast, num_digits_faster):
															benchmark_a_function(lowercase__     ,				lowercase__ )
										print()


if __name__ == "__main__":
	import doctest

	doctest.testmod()
	benchmark()








"""simple docstring"""




def   __SCREAMING_SNAKE_CASE		(		lowercase__ = 30 ):
					"""simple docstring"""
					A     =   exponent + 2
					A     =   (1 + 5**0.5) / 2
					A     =   (phi**fibonacci_index - (phi - 1) ** fibonacci_index) / 5**0.5

					return int(lowercase__ )


if __name__ == "__main__":
	print(f"""{solution() = }""")





