
"""simple docstring"""

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




def       lowercase__  (   lowerCAmelCase			:   float	)	-> float:






    """simple docstring"""




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




def       lowercase__  (   lowerCAmelCase			:   int	)	-> float:






    """simple docstring"""




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

    UpperCAmelCase       =   intersection_x * intersection_y / 2
    UpperCAmelCase       =   circle_bottom_arc_integral(
        1 / 2	) - circle_bottom_arc_integral(lowerCAmelCase	)

    return triangle_area + concave_region_area




def       lowercase__  (   lowerCAmelCase			:   float = 1 / 1_000	)	-> int:






    """simple docstring"""




    UpperCAmelCase       =   (1 - pi / 4) / 4

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

    return -1


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





"""simple docstring"""

from __future__ import annotations

SCREAMING_SNAKE_CASE_         =  '''Alexander Joslin'''




def       lowercase__  (   lowerCAmelCase			:   int	)	-> int:






    """simple docstring"""




    if number <= 0:
        UpperCAmelCase       =   F"n must be greater than 0. Got n = {number}"
        raise ValueError(lowerCAmelCase	)

    UpperCAmelCase       =   [number + 1] * (number + 1)

    # starting position
    UpperCAmelCase       =   0
    for i in range(1	,			lowerCAmelCase	):
        UpperCAmelCase       =   min(table[i + 1]	,			table[i] + 1	)
        # check if out of bounds
        if i * 2 <= number:
            UpperCAmelCase       =   min(table[i * 2]	,			table[i] + 1	)
        # check if out of bounds
        if i * 3 <= number:
            UpperCAmelCase       =   min(table[i * 3]	,			table[i] + 1	)
    return table[number]


if __name__ == "__main__":
   import doctest

   doctest.testmod()



