




def lowercase    (  SCREAMING_SNAKE_CASE )			->							bool:


			'''simple docstring'''







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

def lowercase    (  SCREAMING_SNAKE_CASE )			->							bool:


			'''simple docstring'''







			SCREAMING_SNAKE_CASE_								=						credit_card_number
			SCREAMING_SNAKE_CASE_								=						0
			SCREAMING_SNAKE_CASE_								=						len(SCREAMING_SNAKE_CASE ) - 2
			for i in range(SCREAMING_SNAKE_CASE       ,    -1       ,    -2 ):
						#  double the value of every second digit
						SCREAMING_SNAKE_CASE_								=						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_								=						cc_number[:i] + str(SCREAMING_SNAKE_CASE ) + cc_number[i + 1 :]
						total += digit

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

			return total % 10 == 0

def lowercase    (  SCREAMING_SNAKE_CASE )			->							bool:


			'''simple docstring'''







			SCREAMING_SNAKE_CASE_								=						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(SCREAMING_SNAKE_CASE ) <= 16:
						print(F'{error_message} of its length.' )
						return False

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

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






def lowercase    (  SCREAMING_SNAKE_CASE )			->							int:


			'''simple docstring'''







			if not numbers:
						return 0

			if not isinstance(SCREAMING_SNAKE_CASE       ,    (list, tuple) ) or not all(
			    isinstance(SCREAMING_SNAKE_CASE       ,    SCREAMING_SNAKE_CASE ) for number in numbers ):
						raise ValueError('numbers must be an iterable of integers' )

			SCREAMING_SNAKE_CASE_								=						SCREAMING_SNAKE_CASE_								=						SCREAMING_SNAKE_CASE_								=						numbers[0]

			for i in range(1       ,    len(SCREAMING_SNAKE_CASE ) ):
						# update the maximum and minimum subarray products
						SCREAMING_SNAKE_CASE_								=						numbers[i]
						if number < 0:
									SCREAMING_SNAKE_CASE_						,		SCREAMING_SNAKE_CASE_								=						min_till_now, max_till_now
						SCREAMING_SNAKE_CASE_								=						max(SCREAMING_SNAKE_CASE       ,    max_till_now * number )
						SCREAMING_SNAKE_CASE_								=						min(SCREAMING_SNAKE_CASE       ,    min_till_now * number )

						# update the maximum product found till now
						SCREAMING_SNAKE_CASE_								=						max(SCREAMING_SNAKE_CASE       ,    SCREAMING_SNAKE_CASE )

			return max_prod
