




'''simple docstring'''



import math
from timeit import timeit
def  SCREAMING_SNAKE_CASE_ (							__A				: List[Any]  ) -> int:
   _SCREAMING_SNAKE_CASE       =      0
   _SCREAMING_SNAKE_CASE       =      abs(SCREAMING_SNAKE_CASE_  )
   while True:
      _SCREAMING_SNAKE_CASE       =      n // 10
      digits += 1
      if n == 0:
         break
   return digits
def  SCREAMING_SNAKE_CASE_ (							__A				: int  ) -> int:
   return 1 if n == 0 else math.floor(math.log(abs(SCREAMING_SNAKE_CASE_  )       ,     10  ) + 1  )
def  SCREAMING_SNAKE_CASE_ (							__A				: str  ) -> int:
   return len(str(abs(SCREAMING_SNAKE_CASE_  )  )  )
def  SCREAMING_SNAKE_CASE_ (							) -> None:
   from collections.abc import Callable

   def benchmark_a_function(__A				: Optional[Any]       ,     __A				: List[str]  ) -> None:
      _SCREAMING_SNAKE_CASE       =      f"""{func.__name__}({value})"""
      _SCREAMING_SNAKE_CASE       =      timeit(f"""__main__.{call}"""       ,     setup="import __main__"  )
      print(f"""{call}: {func(SCREAMING_SNAKE_CASE_  )} -- {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(SCREAMING_SNAKE_CASE_       ,     SCREAMING_SNAKE_CASE_  )
      print()


if __name__ == "__main__":
 import doctest

 doctest.testmod()
 benchmark()




from typing import Callable




def        lowerCAmelCase(	SCREAMING_SNAKE_CASE_       )->		List[Any]:



    """simple docstring"""






    def wrapper(SCREAMING_SNAKE_CASE_       ):
        UpperCamelCase_          =		function_with_docstring.__doc__
        return target_function

    return wrapper
