




from __future__ import annotations

SCREAMING_SNAKE_CASE_    :       Tuple       =							'''Alexander Joslin'''
def 							__lowerCAmelCase			(UpperCAmelCase_		):

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

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

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


if __name__ == "__main__":
 import doctest

 doctest.testmod()












from itertools import count
from math import asin, pi, sqrt
def 							__lowerCAmelCase			(UpperCAmelCase_		):
    return (
        (1 - 2 * point) * sqrt(point - point**2		) + 2 * point + asin(sqrt(1 - point		)		)
    ) / 4
def 							__lowerCAmelCase			(UpperCAmelCase_		):
    a__  			=							(circles_number + 1 - sqrt(2 * circles_number		)) / (
        2 * (circles_number**2 + 1)
    )
    a__  			=							circles_number * intersection_y

    a__  			=							intersection_x * intersection_y / 2
    a__  			=							circle_bottom_arc_integral(
        1 / 2		) - circle_bottom_arc_integral(UpperCAmelCase_		)

    return triangle_area + concave_region_area
def 							__lowerCAmelCase			(UpperCAmelCase_ = 1 / 1_000		):
    a__  			=							(1 - pi / 4) / 4

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

    return -1


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






