'''simple docstring'''


import math


def    _lowerCamelCase       ( lowerCamelCase_   :				int  ):



     """simple docstring"""





     if n <= 0:
          raise ValueError('Only positive integers have prime factors'  )
     UpperCAmelCase_				:  str  = []
     while n % 2 == 0:
          pf.append(2  )
          UpperCAmelCase_				:  Tuple  = int(n / 2  )
     for i in range(3      ,	int(math.sqrt(lowerCamelCase_  )  ) + 1      ,	2  ):
          while n % i == 0:
               pf.append(lowerCamelCase_  )
               UpperCAmelCase_				:  Tuple  = int(n / i  )
     if n > 2:
          pf.append(lowerCamelCase_  )
     return pf


def    _lowerCamelCase       ( lowerCamelCase_   :				int  ):



     """simple docstring"""





     if n <= 0:
          raise ValueError('Only positive numbers are accepted'  )
     UpperCAmelCase_				:  List[Any]  = 1
     UpperCAmelCase_				:  List[str]  = 1
     while n % 2 == 0:
          temp += 1
          UpperCAmelCase_				:  Any  = int(n / 2  )
     div *= temp
     for i in range(3      ,	int(math.sqrt(lowerCamelCase_  )  ) + 1      ,	2  ):
          UpperCAmelCase_				:  Any  = 1
          while n % i == 0:
               temp += 1
               UpperCAmelCase_				:  List[Any]  = int(n / i  )
          div *= temp
     if n > 1:
          div *= 2
     return div


def    _lowerCamelCase       ( lowerCamelCase_   :				int  ):



     """simple docstring"""





     if n <= 0:
          raise ValueError('Only positive numbers are accepted'  )
     UpperCAmelCase_				:  Any  = 1
     UpperCAmelCase_				:  Union[str, Any]  = 1
     while n % 2 == 0:
          temp += 1
          UpperCAmelCase_				:  str  = int(n / 2  )
     if temp > 1:
          s *= (2**temp - 1) / (2 - 1)
     for i in range(3      ,	int(math.sqrt(lowerCamelCase_  )  ) + 1      ,	2  ):
          UpperCAmelCase_				:  Dict  = 1
          while n % i == 0:
               temp += 1
               UpperCAmelCase_				:  str  = int(n / i  )
          if temp > 1:
               s *= (i**temp - 1) / (i - 1)
     return int(lowerCamelCase_  )


def    _lowerCamelCase       ( lowerCamelCase_   :				int  ):



     """simple docstring"""





     UpperCAmelCase_				:  List[str]  = n
     for x in set(prime_factors(lowerCamelCase_  )  ):
          s *= (x - 1) / x
     return int(lowerCamelCase_  )


if __name__ == "__main__":
 import doctest

 doctest.testmod()







"""simple docstring"""







def       A__    (	lowercase_     :	list						)  ->							list:

   for insert_index, insert_value in enumerate(collection[1:]						):
      __lowerCamelCase    		=					insert_index
      while insert_index >= 0 and insert_value < collection[insert_index]:
         __lowerCamelCase    		=					collection[insert_index]
         insert_index -= 1
      if insert_index != temp_index:
         __lowerCamelCase    		=					insert_value
   return collection


if __name__ == "__main__":
     from doctest import testmod

     testmod()

     _SCREAMING_SNAKE_CASE	:		List[str]   =   input('''Enter numbers separated by a comma:\n''').strip()
     _SCREAMING_SNAKE_CASE	:		Optional[int]   =   [int(item) for item in user_input.split(''',''')]
     print(F"{insertion_sort(unsorted) = }")






