






from ..utils import DummyObject, requires_backends


class     _UpperCAmelCase  (						metaclass=SCREAMING_SNAKE_CASE_     ):
    __lowerCamelCase:				Dict						    =      ["torch", "librosa"]




    def __init__(     self					:    List[str]					,       *a					:    Any					,       **a					:    Union[str, Any]     ):






       '''simple docstring'''






       requires_backends(self					,       ["torch", "librosa"]     )




    @classmethod
    def 			lowerCAmelCase__			(     cls					:    str					,       *a					:    Any					,       **a					:    List[Any]     ):






       '''simple docstring'''






       requires_backends(cls					,       ["torch", "librosa"]     )





    @classmethod
    def 			lowerCAmelCase__			(     cls					:    Union[str, Any]					,       *a					:    Union[str, Any]					,       **a					:    Dict     ):






       '''simple docstring'''






       requires_backends(cls					,       ["torch", "librosa"]     )


class     _UpperCAmelCase  (						metaclass=SCREAMING_SNAKE_CASE_     ):
    __lowerCamelCase:				Optional[int]						    =      ["torch", "librosa"]




    def __init__(     self					:    Tuple					,       *a					:    Optional[int]					,       **a					:    Optional[int]     ):






       '''simple docstring'''






       requires_backends(self					,       ["torch", "librosa"]     )




    @classmethod
    def 			lowerCAmelCase__			(     cls					:    Optional[Any]					,       *a					:    Dict					,       **a					:    List[Any]     ):






       '''simple docstring'''






       requires_backends(cls					,       ["torch", "librosa"]     )





    @classmethod
    def 			lowerCAmelCase__			(     cls					:    Any					,       *a					:    Optional[int]					,       **a					:    Optional[int]     ):






       '''simple docstring'''






       requires_backends(cls					,       ["torch", "librosa"]     )












'''simple docstring'''
UpperCamelCase__	=     (1, 153, 370, 371, 1634, 24678051, 115132219018763992565095597973971522401)
UpperCamelCase__	=     (-153, -1, 0, 1.2, 200, "A", [], {}, None)




def 						__SCREAMING_SNAKE_CASE   (					_UpperCamelCase							):


   """simple docstring"""




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

   # Initialization of sum and number of digits.
   lowercase_		:      Optional[int]          =       0
   lowercase_		:      Any          =       0
   lowercase_		:      Optional[Any]          =       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_		:      int          =       n
   while temp > 0:
      lowercase_		:      Any          =       temp % 10
      total += rem**number_of_digits
      temp //= 10
   return n == total




def 						__SCREAMING_SNAKE_CASE   (					_UpperCamelCase							):


   """simple docstring"""




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

   # Init a "histogram" of the digits
   lowercase_		:      Optional[Any]          =       [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
   lowercase_		:      Tuple          =       0
   lowercase_		:      Any          =       0
   lowercase_		:      Tuple          =       n
   while temp > 0:
      lowercase_      ,						lowercase_		:      Optional[Any]          =       divmod(_UpperCamelCase  ,						10							)
      digit_histogram[rem] += 1
      digit_total += 1

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

   return n == total




def 						__SCREAMING_SNAKE_CASE   (					_UpperCamelCase							):


   """simple docstring"""




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




def 						__SCREAMING_SNAKE_CASE   (					):


   """simple docstring"""




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


if __name__ == "__main__":
 import doctest

 doctest.testmod()
 main()




