
'''simple docstring'''







import math
from timeit import timeit



def       _a		(						_SCREAMING_SNAKE_CASE		: 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       _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:
												_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_2144, 1125_8999_0684_2624, 126_7650_6002_2822_9401_4967_0320_5376):
												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()

'''simple docstring'''







def       _a		(						_SCREAMING_SNAKE_CASE		: int						,      _SCREAMING_SNAKE_CASE		: int	):
						return (input_a, input_a).count(0	) % 2



def       _a		(						):
						assert xor_gate(0						,      0	) == 0
						assert xor_gate(0						,      1	) == 1
						assert xor_gate(1						,      0	) == 1
						assert xor_gate(1						,      1	) == 0


if __name__ == "__main__":
						print(xor_gate(0, 0))
						print(xor_gate(0, 1))