
'''simple docstring'''


def 					__magic_name__(       UpperCAmelCase__ :       int	):
						if not isinstance(_snake_case							,				_snake_case	):
												UpperCamelCase_     :	int					     =     f"""Input value of [number={number}] must be an integer"""
												raise TypeError(_snake_case	)
						if number < 0 or number % 2 == 1:
												return False
						UpperCamelCase_     :	int					     =     int(number**0.5	)
						return number == number_sqrt * (number_sqrt + 1)


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)


