

def      snake_case__      (   SCREAMING_SNAKE_CASE_		:   str     ,					SCREAMING_SNAKE_CASE_		:   str      ):



     '''simple docstring'''





     lowercase__   :       Optional[Any]				=	len(SCREAMING_SNAKE_CASE_      )
     lowercase__   :       List[str]				=	[]
     for i in range(len(SCREAMING_SNAKE_CASE_      ) - pat_len + 1      ):
          lowercase__   :       List[Any]				=	True
          for j in range(SCREAMING_SNAKE_CASE_      ):
               if s[i + j] != pattern[j]:
                    lowercase__   :       List[str]				=	False
                    break
          if match_found:
               position.append(SCREAMING_SNAKE_CASE_      )
     return position


if __name__ == "__main__":
       assert naive_pattern_search('''ABCDEFG''', '''DE''') == [3]
       print(naive_pattern_search('''ABAAABCDBBABCDDEBCABC''', '''ABC'''))




import math
import sys

def      snake_case__      (   SCREAMING_SNAKE_CASE_		:   int      ):



     '''simple docstring'''





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


if __name__ == "__main__":
       import doctest

       doctest.testmod()

