



'''simple docstring'''





def 	a_					(							_lowerCAmelCase	)				->				bool:
  __lowerCamelCase	:	Union[str, Any]   	=			9

  while num > 0:
    if num % 10 != digit:
      return False
    num //= 100
    digit -= 1

  return True

def 	a_					(							)				->				int:
  __lowerCamelCase	:	List[str]   	=			138902663

  while not is_square_form(num * num	):
    if num % 10 == 3:
      num -= 6  # (3 - 6) % 10 = 7
    else:
      num -= 4  # (7 - 4) % 10 = 3

  return num * 10


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











'''simple docstring'''





import math
from timeit import timeit

def 	a_					(							_lowerCAmelCase	)				->				int:
  __lowerCamelCase	:	int   	=			0
  __lowerCamelCase	:	Optional[int]   	=			abs(_lowerCAmelCase	)
  while True:
    __lowerCamelCase	:	List[str]   	=			n // 10
    digits += 1
    if n == 0:
      break
  return digits

def 	a_					(							_lowerCAmelCase	)				->				int:
  return 1 if n == 0 else math.floor(math.log(abs(_lowerCAmelCase	)	,10	) + 1	)

def 	a_					(							_lowerCAmelCase	)				->				int:
  return len(str(abs(_lowerCAmelCase	)	)	)

def 	a_					(							)				->				None:
  from collections.abc import Callable

  def benchmark_a_function(_lowerCAmelCase	,_lowerCAmelCase	) -> None:
    __lowerCamelCase	:	Any   	=			F'{func.__name__}({value})'
    __lowerCamelCase	:	int   	=			timeit(F'__main__.{call}'	,setup='import __main__'	)
    print(F'{call}: {func(_lowerCAmelCase	)} -- {timing} seconds'	)

  for value in (262144, 1125899906842624, 1267650600228229401496703205376):
    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()






