

'''simple docstring'''



import math
import sys







def    a__       (  a__						):




     """simple docstring"""


     if number != int(a__						):
          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
     __SCREAMING_SNAKE_CASE     =      [-1] * (number + 1)
     __SCREAMING_SNAKE_CASE     =      0
     for i in range(1      ,    number + 1						):
          __SCREAMING_SNAKE_CASE     =      sys.maxsize
          __SCREAMING_SNAKE_CASE     =      int(math.sqrt(a__						)						)
          for j in range(1      ,    root + 1						):
               __SCREAMING_SNAKE_CASE     =      1 + answers[i - (j**2)]
               __SCREAMING_SNAKE_CASE     =      min(a__      ,    a__						)
          __SCREAMING_SNAKE_CASE     =      answer
     return answers[number]


if __name__ == "__main__":
  import doctest

  doctest.testmod()









'''simple docstring'''



def    a__       (  a__						):




     """simple docstring"""


     if isinstance(a__      ,    a__						):
          raise TypeError("""'float' object cannot be interpreted as an integer"""						)
     if isinstance(a__      ,    a__						):
          raise TypeError("""'str' object cannot be interpreted as an integer"""						)

     if num == 0:
          return "0b0"

     __SCREAMING_SNAKE_CASE     =      False

     if num < 0:
          __SCREAMING_SNAKE_CASE     =      True
          __SCREAMING_SNAKE_CASE     =      -num

     __SCREAMING_SNAKE_CASE     =      []
     while num > 0:
          binary.insert(0      ,    num % 2						)
          num >>= 1

     if negative:
          return "-0b" + "".join(str(a__						) for e in binary						)

     return "0b" + "".join(str(a__						) for e in binary						)


if __name__ == "__main__":
  import doctest

  doctest.testmod()






