






"""simple docstring"""






def       _A    (__a							)				-> bool:
    """simple docstring"""






    return credit_card_number.startswith(('''34''', '''35''', '''37''', '''4''', '''5''', '''6''')							)



def       _A    (__a							)				-> bool:
    """simple docstring"""






    SCREAMING_SNAKE_CASE_   :						Any							=	credit_card_number
    SCREAMING_SNAKE_CASE_   :						Tuple							=	0
    SCREAMING_SNAKE_CASE_   :						Dict							=	len(__a							) - 2
    for i in range(__a					,       -1					,       -2							):
        #  double the value of every second digit
        SCREAMING_SNAKE_CASE_   :						Tuple							=	int(cc_number[i]							)
        digit *= 2
        # If doubling of a number results in a two digit number
        # i.e greater than 9(e.g., 6 × 2 = 12),
        # then add the digits of the product (e.g., 12: 1 + 2 = 3, 15: 1 + 5 = 6),
        # to get a single digit number.
        if digit > 9:
            digit %= 10
            digit += 1
        SCREAMING_SNAKE_CASE_   :						Optional[Any]							=	cc_number[:i] + str(__a							) + cc_number[i + 1 :]
        total += digit

    # Sum up the remaining digits
    for i in range(len(__a							) - 1					,       -1					,       -2							):
        total += int(cc_number[i]							)

    return total % 10 == 0



def       _A    (__a							)				-> bool:
    """simple docstring"""






    SCREAMING_SNAKE_CASE_   :						List[str]							=	f'{credit_card_number} is an invalid credit card number because'
    if not credit_card_number.isdigit():
        print(f'{error_message} it has nonnumerical characters.'							)
        return False

    if not 13 <= len(__a							) <= 16:
        print(f'{error_message} of its length.'							)
        return False

    if not validate_initial_digits(__a							):
        print(f'{error_message} of its first two digits.'							)
        return False

    if not luhn_validation(__a							):
        print(f'{error_message} it fails the Luhn check.'							)
        return False

    print(f'{credit_card_number} is a valid credit card number.'							)
    return True


if __name__ == "__main__":
  import doctest

  doctest.testmod()
  validate_credit_card_number("""4111111111111111""")
  validate_credit_card_number("""32323""")










"""simple docstring"""






from collections import defaultdict

from graphs.minimum_spanning_tree_prims import prisms_algorithm as mst



def       _A    ()				-> Union[str, Any]:
    """simple docstring"""






    SCREAMING_SNAKE_CASE_		,    SCREAMING_SNAKE_CASE_   :						Tuple							=	9, 14  # noqa: F841
    SCREAMING_SNAKE_CASE_   :						Tuple							=	[
        [0, 1, 4],
        [0, 7, 8],
        [1, 2, 8],
        [7, 8, 7],
        [7, 6, 1],
        [2, 8, 2],
        [8, 6, 6],
        [2, 3, 7],
        [2, 5, 4],
        [6, 5, 2],
        [3, 5, 14],
        [3, 4, 9],
        [5, 4, 10],
        [1, 7, 11],
    ]

    SCREAMING_SNAKE_CASE_   :						Dict							=	defaultdict(__a							)
    for nodea, nodea, cost in edges:
        adjancency[nodea].append([nodea, cost]							)
        adjancency[nodea].append([nodea, cost]							)

    SCREAMING_SNAKE_CASE_   :						Any							=	mst(__a							)

    SCREAMING_SNAKE_CASE_   :						Optional[int]							=	[
        [7, 6, 1],
        [2, 8, 2],
        [6, 5, 2],
        [0, 1, 4],
        [2, 5, 4],
        [2, 3, 7],
        [0, 7, 8],
        [3, 4, 9],
    ]

    for answer in expected:
        SCREAMING_SNAKE_CASE_   :						Dict							=	tuple(answer[:2]							)
        SCREAMING_SNAKE_CASE_   :						Optional[int]							=	tuple(edge[::-1]							)
        assert edge in result or reverse in result


