
"""simple docstring"""


def  _lowercase					(    __lowerCAmelCase							)       ->				bool:
      return credit_card_number.startswith(("""34""", """35""", """37""", """4""", """5""", """6""")							)




def  _lowercase					(    __lowerCAmelCase							)       ->				bool:
      SCREAMING_SNAKE_CASE__   :      Optional[int]      		=	credit_card_number
      SCREAMING_SNAKE_CASE__   :      Union[str, Any]      		=	0
      SCREAMING_SNAKE_CASE__   :      Dict      		=	len(__lowerCAmelCase							) - 2
      for i in range(__lowerCAmelCase  ,					-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(__lowerCAmelCase							) + cc_number[i + 1 :]
            total += digit

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

      return total % 10 == 0




def  _lowercase					(    __lowerCAmelCase							)       ->				bool:
      SCREAMING_SNAKE_CASE__   :      int      		=	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(__lowerCAmelCase							) <= 16:
            print(F'''{error_message} of its length.'''							)
            return False

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

      if not luhn_validation(__lowerCAmelCase							):
            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"""


def  _lowercase					(    __lowerCAmelCase							)       ->				int:
      if divisor % 5 == 0 or divisor % 2 == 0:
            return 0
      SCREAMING_SNAKE_CASE__   :      List[Any]      		=	1
      SCREAMING_SNAKE_CASE__   :      int      		=	1
      while repunit:
            SCREAMING_SNAKE_CASE__   :      str      		=	(10 * repunit + 1) % divisor
            repunit_index += 1
      return repunit_index




def  _lowercase					(    __lowerCAmelCase = 100_0000							)       ->				int:
      SCREAMING_SNAKE_CASE__   :      Dict      		=	limit - 1
      if divisor % 2 == 0:
            divisor += 1
      while least_divisible_repunit(__lowerCAmelCase							) <= limit:
            divisor += 2
      return divisor


if __name__ == "__main__":
  print(f'{solution() = }')




