from itertools import count
from math import asin, pi, sqrt


def 					__lowerCAmelCase			(  _A					):



							"""simple docstring"""


							return (
							    (1 - 2 * point) * sqrt(point - point**2					) + 2 * point + asin(sqrt(1 - point					)					)
							) / 4


def 					__lowerCAmelCase			(  _A					):



							"""simple docstring"""


							_lowercase				=	(circles_number + 1 - sqrt(2 * circles_number					)) / (
							    2 * (circles_number**2 + 1)
							)
							_lowercase				=	circles_number * intersection_y

							_lowercase				=	intersection_x * intersection_y / 2
							_lowercase				=	circle_bottom_arc_integral(
							    1 / 2					) - circle_bottom_arc_integral(_A					)

							return triangle_area + concave_region_area


def 					__lowerCAmelCase			(  _A = 1 / 1_000					):



							"""simple docstring"""


							_lowercase				=	(1 - pi / 4) / 4

							for n in count(1					):
														if concave_triangle_area(_A					) / l_section_area < fraction:
																					return n

							return -1


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



import math
from timeit import timeit


def 					__lowerCAmelCase			(  _A					):



							"""simple docstring"""


							_lowercase				=	0
							_lowercase				=	abs(_A					)
							while True:
														_lowercase				=	n // 10
														digits += 1
														if n == 0:
																					break
							return digits


def 					__lowerCAmelCase			(  _A					):



							"""simple docstring"""


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


def 					__lowerCAmelCase			(  _A					):



							"""simple docstring"""


							return len(str(abs(_A					)					)					)


def 					__lowerCAmelCase			(  ):



							"""simple docstring"""


							from collections.abc import Callable

							def benchmark_a_function(_A ,_A					) -> None:
														_lowercase				=	f'''{func.__name__}({value})'''
														_lowercase				=	timeit(f'''__main__.{call}''' ,setup="""import __main__"""					)
														print(f'''{call}: {func(_A					)} -- {timing} seconds'''					)

							for value in (262_144, 1_125_899_906_842_624, 1_267_650_600_228_229_401_496_703_205_376):
														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()


