def     A__	(       __A						):







    '''simple docstring'''
    _lowerCamelCase  :		str			    =    len(_snake_case						)

    # Set the gap value to be decreased by a factor of 1.3
    # after each iteration
    _lowerCamelCase  :		Any			    =    1.3

    # Continue sorting until the gap is 1
    while gap > 1:
        # Decrease the gap value
        _lowerCamelCase  :		str			    =    int(gap / shrink						)

        # Sort the elements using insertion sort
        for i in range(_snake_case ,			len(_snake_case						)						):
            _lowerCamelCase  :		str			    =    collection[i]
            _lowerCamelCase  :		Union[str, Any]			    =    i
            while j >= gap and collection[j - gap] > temp:
                _lowerCamelCase  :		Optional[Any]			    =    collection[j - gap]
                j -= gap
            _lowerCamelCase  :		Dict			    =    temp

    return collection


if __name__ == "__main__":
    import doctest

    doctest.testmod()








"""simple docstring"""





from doctest import testmod
from math import sqrt


def   _snake_case    (    _snake_case					:      int      ):
      lowerCAmelCase       :						list[int]							= []
      if num < 1:
            return facs
      facs.append(1      )
      if num == 1:
            return facs
      facs.append(_snake_case      )
      for i in range(2			, int(sqrt(_snake_case      )      ) + 1      ):
            if num % i == 0:  # If i is a factor of num
                  facs.append(_snake_case      )
                  lowerCAmelCase       :						Dict							= num // i  # num//i is the other factor of num
                  if d != i:  # If d and i are distinct
                        facs.append(_snake_case      )  # we have found another factor
      facs.sort()
      return facs


if __name__ == "__main__":
 testmod(name='''factors_of_a_number''', verbose=True)


