


import math
import sys







def        _lowerCamelCase(	lowercase__	)						->	int:

		'''simple docstring'''







		if number != int(lowercase__	):
				raise ValueError('the value of input must be a natural number'	)
		if number < 0:
				raise ValueError('the value of input must not be a negative number'	)
		if number == 0:
				return 1
		__lowercase=			[-1] * (number + 1)
		__lowercase=			0
		for i in range(1   , number + 1	):
				__lowercase=			sys.maxsize
				__lowercase=			int(math.sqrt(lowercase__	)	)
				for j in range(1   , root + 1	):
						__lowercase=			1 + answers[i - (j**2)]
						__lowercase=			min(lowercase__   , lowercase__	)
				__lowercase=			answer
		return answers[number]


if __name__ == "__main__":
	import doctest

	doctest.testmod()










from __future__ import annotations







def        _lowerCamelCase(	lowercase__	)						->	list[int]:

		'''simple docstring'''







		__lowercase=			2
		__lowercase=			[]
		while i * i <= n:
				if n % i:
						i += 1
				else:
						n //= i
						factors.append(lowercase__	)
		if n > 1:
				factors.append(lowercase__	)
		return factors


if __name__ == "__main__":
	import doctest

	doctest.testmod()






