




a_ 		=  (1, 153, 370, 371, 1634, 2467_8051, 115_1322_1901_8763_9925_6509_5597_9739_7152_2401)
a_ 		=  (-153, -1, 0, 1.2, 200, "A", [], {}, None)




def        __SCREAMING_SNAKE_CASE (	lowercase_   )							->						bool:

    """simple docstring"""


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

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




def        __SCREAMING_SNAKE_CASE (	lowercase_   )							->						bool:

    """simple docstring"""


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

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

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

    return n == total




def        __SCREAMING_SNAKE_CASE (	lowercase_   )							->						bool:

    """simple docstring"""


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




def        __SCREAMING_SNAKE_CASE (	)							->						str:

    """simple docstring"""


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


if __name__ == "__main__":
 import doctest

 doctest.testmod()
 main()












class 			_lowerCamelCase    :

      """simple docstring"""

      def __init__(  self       :			Optional[Any]			,							snake_case       :			int					):
          __UpperCamelCase			=    data
          __UpperCamelCase			=    42
          __UpperCamelCase			=    42







def        __SCREAMING_SNAKE_CASE (	lowercase_   )							->						None:

    """simple docstring"""


    __UpperCamelCase			=    0
    __UpperCamelCase			=    x




def        __SCREAMING_SNAKE_CASE (	lowercase_       ,  lowercase_   )							->						None:

    """simple docstring"""


    __UpperCamelCase		,   __UpperCamelCase			=    find_set(lowercase_   ), find_set(lowercase_   )
    if x == y:
        return

    elif x.rank > y.rank:
        __UpperCamelCase			=    x
    else:
        __UpperCamelCase			=    y
        if x.rank == y.rank:
            y.rank += 1




def        __SCREAMING_SNAKE_CASE (	lowercase_   )							->						Node:

    """simple docstring"""


    if x != x.parent:
        __UpperCamelCase			=    find_set(x.parent   )
    return x.parent




def        __SCREAMING_SNAKE_CASE (	lowercase_   )							->						set:

    """simple docstring"""


    __UpperCamelCase			=    ({0, 1, 2}, {3, 4, 5})
    for s in sets:
        if node.data in s:
            return s
    __UpperCamelCase			=    F"{node.data} is not in {sets}"
    raise ValueError(lowercase_   )




def        __SCREAMING_SNAKE_CASE (	)							->						None:

    """simple docstring"""


    __UpperCamelCase			=    [Node(lowercase_   ) for i in range(6   )]
    for v in vertex:
        make_set(lowercase_   )

    union_set(vertex[0]       ,  vertex[1]   )
    union_set(vertex[1]       ,  vertex[2]   )
    union_set(vertex[3]       ,  vertex[4]   )
    union_set(vertex[3]       ,  vertex[5]   )

    for nodea in vertex:
        for nodea in vertex:
            if find_python_set(lowercase_   ).isdisjoint(find_python_set(lowercase_   )   ):
                assert find_set(lowercase_   ) != find_set(lowercase_   )
            else:
                assert find_set(lowercase_   ) == find_set(lowercase_   )


if __name__ == "__main__":
 test_disjoint_set()






