


"""simple docstring"""





def   _snake_case    (    _snake_case					:      str      ):
      lowerCAmelCase       :						Union[str, Any]							= 0
      for letter in data:
            lowerCAmelCase       :						Tuple							= (hash_ << 4) + ord(_snake_case      )
            lowerCAmelCase       :						Optional[Any]							= hash_ & 0Xf000_0000
            if x != 0:
                  hash_ ^= x >> 24
            hash_ &= ~x
      return hash_


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)


