code: 
  
  
  
  import math
  from timeit import timeit
  
  
  
  
  
  
  def 			__lowercase     (				a__     )       ->				int:
  							__SCREAMING_SNAKE_CASE								=      0
  							__SCREAMING_SNAKE_CASE								=      abs(a__     )
  							while True:
  														__SCREAMING_SNAKE_CASE								=      n // 10
  														digits += 1
  														if n == 0:
  																					break
  							return digits
  
  
  
  
  
  
  def 			__lowercase     (				a__     )       ->				int:
  							return 1 if n == 0 else math.floor(math.log(abs(a__     )							,     10     ) + 1     )
  
  
  
  
  
  
  def 			__lowercase     (				a__     )       ->				int:
  							return len(str(abs(a__     )     )     )
  
  
  
  
  
  
  def 			__lowercase     (				)       ->				None:
  							from collections.abc import Callable
  
  							def benchmark_a_function(a__							,     a__     ) -> None:
  														__SCREAMING_SNAKE_CASE								=      f"""{func.__name__}({value})"""
  														__SCREAMING_SNAKE_CASE								=      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()
  
  
  
  
  
  
  
style_context: 
  
  
  
  def 			__lowercase     (				a__							,     a__     )       ->				List[str]:
  							if n == 0:
  														return 1
  
  							elif n % 2 == 1:
  														return binary_exponentiation(a__							,     n - 1     ) * a
  
  							else:
  														__SCREAMING_SNAKE_CASE								=      binary_exponentiation(a__							,     n / 2     )
  														return b * b
  
  
  if __name__ == "__main__":
  			try:
  						lowerCAmelCase__	:  str 		=int(input('''Enter Base : ''').strip())
  						lowerCAmelCase__	:  Optional[int] 		=int(input('''Enter Power : ''').strip())
  			except ValueError:
  						print('''Invalid literal for integer''')
  
  			lowerCAmelCase__	:  Any 		=binary_exponentiation(BASE, POWER)
  			print(F'''{BASE}^({POWER}) : {RESULT}''')
  
  
  
  
  
  
  