




"""simple docstring"""





def 		lowerCAmelCase				(			lowerCamelCase   ,      lowerCamelCase   ,      lowerCamelCase		):
						'''simple docstring'''


						if right <= left:
												return
						snake_case__							:       Any				      =       left
						snake_case__							:       Union[str, Any]				      =       right
						snake_case__							:       int				      =       sorting[left]
						while i <= b:
												if sorting[i] < pivot:
																		snake_case__      ,						snake_case__							:       Union[str, Any]				      =       sorting[i], sorting[a]
																		a += 1
																		i += 1
												elif sorting[i] > pivot:
																		snake_case__      ,						snake_case__							:       str				      =       sorting[i], sorting[b]
																		b -= 1
												else:
																		i += 1
						quick_sort_apartition(lowerCamelCase   ,      lowerCamelCase   ,      a - 1		)
						quick_sort_apartition(lowerCamelCase   ,      b + 1   ,      lowerCamelCase		)

def 		lowerCAmelCase				(			lowerCamelCase   ,      lowerCamelCase   ,      lowerCamelCase		):
						'''simple docstring'''


						if left < right:
												snake_case__							:       Union[str, Any]				      =       lomuto_partition(lowerCamelCase   ,      lowerCamelCase   ,      lowerCamelCase		)
												quick_sort_lomuto_partition(lowerCamelCase   ,      lowerCamelCase   ,      pivot_index - 1		)
												quick_sort_lomuto_partition(lowerCamelCase   ,      pivot_index + 1   ,      lowerCamelCase		)

def 		lowerCAmelCase				(			lowerCamelCase   ,      lowerCamelCase   ,      lowerCamelCase		):
						'''simple docstring'''


						snake_case__							:       Tuple				      =       sorting[right]
						snake_case__							:       Optional[int]				      =       left
						for i in range(lowerCamelCase   ,      lowerCamelCase		):
												if sorting[i] < pivot:
																		snake_case__      ,						snake_case__							:       str				      =       sorting[i], sorting[store_index]
																		store_index += 1
						snake_case__      ,						snake_case__							:       int				      =       sorting[store_index], sorting[right]
						return store_index

def 		lowerCAmelCase				(			lowerCamelCase		):
						'''simple docstring'''


						if len(lowerCamelCase		) <= 1:
												return sorting
						return (
						    three_way_radix_quicksort([i for i in sorting if i < sorting[0]]		)
						    + [i for i in sorting if i == sorting[0]]
						    + three_way_radix_quicksort([i for i in sorting if i > sorting[0]]		)
						)


if __name__ == "__main__":
							import doctest

							doctest.testmod(verbose=True)

							_lowercase						   =     input("""Enter numbers separated by a comma:\n""").strip()
							_lowercase						   =     [int(item) for item in user_input.split(""",""")]
							quick_sort_apartition(unsorted, 0, len(unsorted) - 1)
							print(unsorted)








"""simple docstring"""





_lowercase						   =     (1, 1_53, 3_70, 3_71, 16_34, 24_67_80_51, 1_15_13_22_19_01_87_63_99_25_65_09_55_97_97_39_71_52_24_01)
_lowercase						   =     (-1_53, -1, 0, 1.2, 2_00, "A", [], {}, None)

def 		lowerCAmelCase				(			lowerCamelCase		):
						'''simple docstring'''


						if not isinstance(lowerCamelCase   ,      lowerCamelCase		) or n < 1:
												return False

						# Initialization of sum and number of digits.
						snake_case__							:       Optional[Any]				      =       0
						snake_case__							:       Union[str, Any]				      =       0
						snake_case__							:       List[str]				      =       n
						# Calculation of digits of the number
						while temp > 0:
												number_of_digits += 1
												temp //= 10
						# Dividing number into separate digits and find Armstrong number
						snake_case__							:       Optional[int]				      =       n
						while temp > 0:
												snake_case__							:       Optional[int]				      =       temp % 10
												total += rem**number_of_digits
												temp //= 10
						return n == total

def 		lowerCAmelCase				(			lowerCamelCase		):
						'''simple docstring'''


						if not isinstance(lowerCamelCase   ,      lowerCamelCase		) or n < 1:
												return False

						# Init a "histogram" of the digits
						snake_case__							:       Union[str, Any]				      =       [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
						snake_case__							:       int				      =       0
						snake_case__							:       int				      =       0
						snake_case__							:       Dict				      =       n
						while temp > 0:
												snake_case__      ,						snake_case__							:       Optional[int]				      =       divmod(lowerCamelCase   ,      10		)
												digit_histogram[rem] += 1
												digit_total += 1

						for cnt, i in zip(lowerCamelCase   ,      range(len(lowerCamelCase		)		)		):
												total += cnt * i**digit_total

						return n == total

def 		lowerCAmelCase				(			lowerCamelCase		):
						'''simple docstring'''


						if not isinstance(lowerCamelCase   ,      lowerCamelCase		) or n < 1:
												return False
						snake_case__							:       Union[str, Any]				      =       len(str(lowerCamelCase		)		)  # the power that all digits will be raised to
						# check if sum of each digit multiplied expo times is equal to number
						return n == sum(int(lowerCamelCase		) ** expo for i in str(lowerCamelCase		)		)

def 		lowerCAmelCase				(			):
						'''simple docstring'''


						snake_case__							:       Dict				      =       int(input('''Enter an integer to see if it is an Armstrong number: '''		).strip()		)
						print(f'''{num} is {'' if armstrong_number(lowerCamelCase		) else 'not '}an Armstrong number.'''		)
						print(f'''{num} is {'' if narcissistic_number(lowerCamelCase		) else 'not '}an Armstrong number.'''		)
						print(f'''{num} is {'' if pluperfect_number(lowerCamelCase		) else 'not '}an Armstrong number.'''		)


if __name__ == "__main__":
							import doctest

							doctest.testmod()
							main()


