

'''simple docstring'''
def        _lowerCAmelCase					(						_UpperCamelCase						:     list							, _UpperCamelCase						:     int = 0				)      ->			list:
     """simple docstring"""




     _SCREAMING_SNAKE_CASE							    =length or len(_UpperCamelCase				)
     _SCREAMING_SNAKE_CASE							    =False
     for i in range(length - 1				):
          if list_data[i] > list_data[i + 1]:
               _SCREAMING_SNAKE_CASE    ,						_SCREAMING_SNAKE_CASE							    =list_data[i + 1], list_data[i]
               _SCREAMING_SNAKE_CASE							    =True

     return list_data if not swapped else bubble_sort(_UpperCamelCase							, length - 1				)


if __name__ == "__main__":
     import doctest

     doctest.testmod()






import math
import sys



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


if __name__ == "__main__":
     import doctest

     doctest.testmod()



