
import math
from timeit import timeit


def   _A       (    SCREAMING_SNAKE_CASE__  :     int	):
    UpperCamelCase	:Dict     							=       0
    UpperCamelCase	:List[Any]     							=       abs(SCREAMING_SNAKE_CASE__	)
    while True:
        UpperCamelCase	:Tuple     							=       n // 10
        digits += 1
        if n == 0:
            break
    return digits


def   _A       (    SCREAMING_SNAKE_CASE__  :     int	):
    return 1 if n == 0 else math.floor(math.log(abs(SCREAMING_SNAKE_CASE__	)					,  10	) + 1	)


def   _A       (    SCREAMING_SNAKE_CASE__  :     int	):
    return len(str(abs(SCREAMING_SNAKE_CASE__	)	)	)


def   _A       (    ):
    from collections.abc import Callable

    def benchmark_a_function(SCREAMING_SNAKE_CASE__  :     Callable					,  SCREAMING_SNAKE_CASE__  :     int	) -> None:
        UpperCamelCase	:List[Any]     							=       F'''{func.__name__}({value})'''
        UpperCamelCase	:Optional[Any]     							=       timeit(F'''__main__.{call}'''					,  setup='''import __main__'''	)
        print(F'''{call}: {func(SCREAMING_SNAKE_CASE__	)} -- {timing} seconds'''	)

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













def   _A       (    SCREAMING_SNAKE_CASE__  :     int	):
    UpperCamelCase	:Optional[Any]     							=       9

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

    return True


def   _A       (    ):
    UpperCamelCase	: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() = }''')





