
'''simple docstring'''







lowerCAmelCase_      =   (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)
lowerCAmelCase_      =   (-1_5_3, -1, 0, 1.2, 2_0_0, "A", [], {}, None)







def   lowerCAmelCase(  a__    :  int      ):







       '''simple docstring'''






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

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







def   lowerCAmelCase(  a__    :  int      ):







       '''simple docstring'''






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

       # Init a "histogram" of the digits
       lowerCamelCase__				   =      [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
       lowerCamelCase__				   =      0
       lowerCamelCase__				   =      0
       lowerCamelCase__				   =      n
       while temp > 0:
              lowerCamelCase__   ,		lowerCamelCase__				   =      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(  a__    :  int      ):







       '''simple docstring'''






       if not isinstance(lowerCamelCase_      , lowerCamelCase_      ) or n < 1:
              return False
       lowerCamelCase__				   =      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'''






       lowerCamelCase__				   =      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()





"""simple docstring"""






from __future__ import annotations

from collections.abc import Generator


def __lowercase  (   lowerCamelCase_	:   int	):
				if not isinstance(lowerCamelCase_    ,       lowerCamelCase_	) or n < 1:
								raise Exception("Sequence only defined for positive integers"	)

				yield n
				while n != 1:
								if n % 2 == 0:
												n //= 2
								else:
												SCREAMING_SNAKE_CASE__  				=					3 * n + 1
								yield n


def __lowercase  (   ):
				SCREAMING_SNAKE_CASE__  				=					43
				SCREAMING_SNAKE_CASE__  				=					tuple(collatz_sequence(lowerCamelCase_	)	)
				print(lowerCamelCase_	)
				print(F'''Collatz sequence from {n} took {len(lowerCamelCase_	)} steps.'''	)


if __name__ == "__main__":
	main()
