



'''simple docstring'''





from __future__ import annotations


def     UpperCamelCase(						__UpperCamelCase							:	int				):
		lowerCAmelCase_    :  Union[str, Any]             =				{1}
		lowerCAmelCase_    :  List[Any]             =				[1]
		for _ in range(2  ,depth + 1				):
				lowerCAmelCase_    :  Dict             =				[*previous_coefficients, 0]
				lowerCAmelCase_    :  int             =				[0, *previous_coefficients]
				lowerCAmelCase_    :  Any             =				[]
				for x, y in zip(__UpperCamelCase  ,__UpperCamelCase				):
						coefficients.add(x + y				)
						previous_coefficients.append(x + y				)
		return coefficients


def     UpperCamelCase(						__UpperCamelCase							:	set[int]				):
		lowerCAmelCase_    :  Optional[int]             =				set()
		for number in unique_coefficients:
				lowerCAmelCase_    :  int             =				2
				lowerCAmelCase_    :  int             =				number
				while divisor**2 <= copy_number:
						lowerCAmelCase_    :  Union[str, Any]             =				0
						while copy_number % divisor == 0:
								copy_number //= divisor
								multiplicity += 1
						if multiplicity >= 2:
								non_squarefrees.add(__UpperCamelCase				)
								break
						divisor += 1

		return unique_coefficients.difference(__UpperCamelCase				)


def     UpperCamelCase(						__UpperCamelCase							:	int = 51				):
		lowerCAmelCase_    :  Optional[int]             =				get_pascal_triangle_unique_coefficients(__UpperCamelCase				)
		lowerCAmelCase_    :  str             =				get_squarefrees(__UpperCamelCase				)
		return sum(__UpperCamelCase				)


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










from __future__ import annotations

A__						:						Tuple          =      '''Alexander Joslin'''


def     UpperCamelCase(						__UpperCamelCase							:	int				):

		if number <= 0:
				lowerCAmelCase_    :  str             =				f"""n must be greater than 0. Got n = {number}"""
				raise ValueError(__UpperCamelCase				)

		lowerCAmelCase_    :  str             =				[number + 1] * (number + 1)

		# starting position
		lowerCAmelCase_    :  List[Any]             =				0
		for i in range(1  ,__UpperCamelCase				):
				lowerCAmelCase_    :  int             =				min(table[i + 1]  ,table[i] + 1				)
				# check if out of bounds
				if i * 2 <= number:
						lowerCAmelCase_    :  Union[str, Any]             =				min(table[i * 2]  ,table[i] + 1				)
				# check if out of bounds
				if i * 3 <= number:
						lowerCAmelCase_    :  Union[str, Any]             =				min(table[i * 3]  ,table[i] + 1				)
		return table[number]


if __name__ == "__main__":
						import doctest

						doctest.testmod()





