




'''simple docstring'''




def 						snake_case__    ( lowerCamelCase__				:   List[str]			)   ->   Dict:
					A_ :     Optional[int] =							[7_0_1, 3_0_1, 1_3_2, 5_7, 2_3, 1_0, 4, 1]
					for gap in gaps:
										for i in range(lowerCamelCase__			,		len(lowerCamelCase__			)			):
															A_ :     Union[str, Any] =							collection[i]
															A_ :     Tuple =							i
															while j >= gap and collection[j - gap] > insert_value:
																				A_ :     str =							collection[j - gap]
																				j -= gap
															if j != i:
																				A_ :     Optional[Any] =							insert_value
					return collection


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

							testmod()
							snake_case__          =						input("""Enter numbers separated by a comma:\n""").strip()
							snake_case__          =						[int(item) for item in user_input.split(""",""")]
							print(shell_sort(unsorted))









'''simple docstring'''




def 						snake_case__    ( lowerCamelCase__				:   int			)   ->   bool:
					if not isinstance(lowerCamelCase__			,		lowerCamelCase__			):
										A_ :     int =							f'Input value of [number={number}] must be an integer'
										raise TypeError(lowerCamelCase__			)
					if number < 0 or number % 2 == 1:
										return False
					A_ :     Dict =							int(number**0.5			)
					return number == number_sqrt * (number_sqrt + 1)


if __name__ == "__main__":
							import doctest

							doctest.testmod()



