


"""simple docstring"""



import math
import sys







def   __lowerCAmelCase						(						lowercase  :  int			)     ->						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
				snake_case   :				Optional[Any]				 =   [-1] * (number + 1)
				snake_case   :				str				 =   0
				for i in range(1						,							number + 1			):
								snake_case   :				List[Any]				 =   sys.maxsize
								snake_case   :				Union[str, Any]				 =   int(math.sqrt(lowercase			)			)
								for j in range(1						,							root + 1			):
												snake_case   :				List[str]				 =   1 + answers[i - (j**2)]
												snake_case   :				Optional[Any]				 =   min(lowercase						,							lowercase			)
								snake_case   :				Any				 =   answer
				return answers[number]


if __name__ == "__main__":
		import doctest

		doctest.testmod()









"""simple docstring"""



def   __lowerCAmelCase						(						lowercase  :  int			)     ->						int:


    """simple docstring"""





    if not isinstance(lowercase						,							lowercase			):
        raise ValueError("Input must be an integer"			)
    if input_num <= 0:
        raise ValueError("Input must be positive"			)
    return sum(
        divisor for divisor in range(1						,							input_num // 2 + 1			) if input_num % divisor == 0			)


if __name__ == "__main__":
  import doctest

  doctest.testmod()





