




import math
def  snake_case_					(		SCREAMING_SNAKE_CASE_    )      ->			list:
							if n <= 0:
														raise ValueError("Only positive integers have prime factors"    )
							lowercase__  :	Optional[Any]        =							[]
							while n % 2 == 0:
														pf.append(2    )
														lowercase__  :	Any        =							int(n / 2    )
							for i in range(3    ,int(math.sqrt(SCREAMING_SNAKE_CASE_    )    ) + 1    ,2    ):
														while n % i == 0:
																					pf.append(SCREAMING_SNAKE_CASE_    )
																					lowercase__  :	List[Any]        =							int(n / i    )
							if n > 2:
														pf.append(SCREAMING_SNAKE_CASE_    )
							return pf
def  snake_case_					(		SCREAMING_SNAKE_CASE_    )      ->			int:
							if n <= 0:
														raise ValueError("Only positive numbers are accepted"    )
							lowercase__  :	str        =							1
							lowercase__  :	Any        =							1
							while n % 2 == 0:
														temp += 1
														lowercase__  :	Tuple        =							int(n / 2    )
							div *= temp
							for i in range(3    ,int(math.sqrt(SCREAMING_SNAKE_CASE_    )    ) + 1    ,2    ):
														lowercase__  :	List[str]        =							1
														while n % i == 0:
																					temp += 1
																					lowercase__  :	Optional[int]        =							int(n / i    )
														div *= temp
							if n > 1:
														div *= 2
							return div
def  snake_case_					(		SCREAMING_SNAKE_CASE_    )      ->			int:
							if n <= 0:
														raise ValueError("Only positive numbers are accepted"    )
							lowercase__  :	Any        =							1
							lowercase__  :	Tuple        =							1
							while n % 2 == 0:
														temp += 1
														lowercase__  :	Any        =							int(n / 2    )
							if temp > 1:
														s *= (2**temp - 1) / (2 - 1)
							for i in range(3    ,int(math.sqrt(SCREAMING_SNAKE_CASE_    )    ) + 1    ,2    ):
														lowercase__  :	Optional[Any]        =							1
														while n % i == 0:
																					temp += 1
																					lowercase__  :	List[Any]        =							int(n / i    )
														if temp > 1:
																					s *= (i**temp - 1) / (i - 1)
							return int(SCREAMING_SNAKE_CASE_    )
def  snake_case_					(		SCREAMING_SNAKE_CASE_    )      ->			int:
							lowercase__  :	Optional[int]        =							n
							for x in set(prime_factors(SCREAMING_SNAKE_CASE_    )    ):
														s *= (x - 1) / x
							return int(SCREAMING_SNAKE_CASE_    )


if __name__ == "__main__":
						import doctest

						doctest.testmod()





def  snake_case_					(		SCREAMING_SNAKE_CASE_    )      ->			list:
							lowercase__  :	Optional[Any]        =							len(SCREAMING_SNAKE_CASE_    )

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

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

														# Sort the elements using insertion sort
														for i in range(SCREAMING_SNAKE_CASE_    ,len(SCREAMING_SNAKE_CASE_    )    ):
																					lowercase__  :	int        =							collection[i]
																					lowercase__  :	Union[str, Any]        =							i
																					while j >= gap and collection[j - gap] > temp:
																												lowercase__  :	str        =							collection[j - gap]
																												j -= gap
																					lowercase__  :	List[Any]        =							temp

							return collection


if __name__ == "__main__":
						import doctest

						doctest.testmod()