__a  :					Any          =  (1, 1_5_3, 3_7_0, 3_7_1, 1_6_3_4, 2_4_6_7_8_0_5_1, 1_1_5_1_3_2_2_1_9_0_1_8_7_6_3_9_9_2_5_6_5_0_9_5_5_9_7_9_7_3_9_7_1_5_2_2_4_0_1)
__a  :					str          =  (-1_5_3, -1, 0, 1.2, 2_0_0, """A""", [], {}, None)





def     UpperCAmelCase						(   lowercase							):







				"""simple docstring"""



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

				# Initialization of sum and number of digits.
				__lowercase			      =							0
				__lowercase			      =							0
				__lowercase			      =							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
				__lowercase			      =							n
				while temp > 0:
								__lowercase			      =							temp % 10
								total += rem**number_of_digits
								temp //= 10
				return n == total





def     UpperCAmelCase						(   lowercase							):







				"""simple docstring"""



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

				# Init a "histogram" of the digits
				__lowercase			      =							[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
				__lowercase			      =							0
				__lowercase			      =							0
				__lowercase			      =							n
				while temp > 0:
								__lowercase      ,					__lowercase			      =							divmod(SCREAMING_SNAKE_CASE_							,      10							)
								digit_histogram[rem] += 1
								digit_total += 1

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

				return n == total





def     UpperCAmelCase						(   lowercase							):







				"""simple docstring"""



				if not isinstance(SCREAMING_SNAKE_CASE_							,      SCREAMING_SNAKE_CASE_							) or n < 1:
								return False
				__lowercase			      =							len(str(SCREAMING_SNAKE_CASE_							)							)  # 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(SCREAMING_SNAKE_CASE_							) ** expo for i in str(SCREAMING_SNAKE_CASE_							)							)





def     UpperCAmelCase						(   ):







				"""simple docstring"""



				__lowercase			      =							int(input('''Enter an integer to see if it is an Armstrong number: '''							).strip()							)
				print(F"{num} is {'' if armstrong_number(SCREAMING_SNAKE_CASE_							) else 'not '}an Armstrong number."							)
				print(F"{num} is {'' if narcissistic_number(SCREAMING_SNAKE_CASE_							) else 'not '}an Armstrong number."							)
				print(F"{num} is {'' if pluperfect_number(SCREAMING_SNAKE_CASE_							) else 'not '}an Armstrong number."							)


if __name__ == "__main__":
		import doctest

		doctest.testmod()
		main()
from typing import TypeVar

from .arrow_dataset import Dataset, _split_by_node_map_style_dataset
from .iterable_dataset import IterableDataset, _split_by_node_iterable_dataset


__a  :					Union[str, Any]          =  TypeVar("""DatasetType""", Dataset, IterableDataset)





def     UpperCAmelCase						(   lowercase							,      lowercase							,      lowercase							):







				"""simple docstring"""



				if isinstance(lowercase							,      lowercase							):
								return _split_by_node_map_style_dataset(lowercase							,      rank=lowercase							,      world_size=lowercase							)
				else:
								return _split_by_node_iterable_dataset(lowercase							,      rank=lowercase							,      world_size=lowercase							)