



def 	_lowerCAmelCase						(				__lowerCamelCase   :     str     ):



 """simple docstring"""





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






def 	_lowerCAmelCase						(				__lowerCamelCase   :     str     ):



 """simple docstring"""





 __SCREAMING_SNAKE_CASE       :    Dict       =	credit_card_number
 __SCREAMING_SNAKE_CASE       :    Tuple       =	0
 __SCREAMING_SNAKE_CASE       :    Optional[Any]       =	len(__lowerCamelCase     ) - 2
 for i in range(__lowerCamelCase		,	-1		,	-2     ):
  #  double the value of every second digit
  __SCREAMING_SNAKE_CASE       :    List[Any]       =	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       :    str       =	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 	_lowerCAmelCase						(				__lowerCamelCase   :     str     ):



 """simple docstring"""





 __SCREAMING_SNAKE_CASE       :    Dict       =	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""")











def 	_lowerCAmelCase						(				__lowerCamelCase   :     Union[str, Any]		,	__lowerCamelCase   :     Dict		,	__lowerCamelCase   :     Dict		,	__lowerCamelCase   :     int     ):



 """simple docstring"""





 if height >= 1:
  move_tower(height - 1		,	__lowerCamelCase		,	__lowerCamelCase		,	__lowerCamelCase     )
  move_disk(__lowerCamelCase		,	__lowerCamelCase     )
  move_tower(height - 1		,	__lowerCamelCase		,	__lowerCamelCase		,	__lowerCamelCase     )






def 	_lowerCAmelCase						(				__lowerCamelCase   :     Optional[Any]		,	__lowerCamelCase   :     Optional[int]     ):



 """simple docstring"""





 print("moving disk from"		,	__lowerCamelCase		,	"to"		,	__lowerCamelCase     )






def 	_lowerCAmelCase						(				):



 """simple docstring"""





 __SCREAMING_SNAKE_CASE       :    List[Any]       =	int(input("Height of hanoi: "     ).strip()     )
 move_tower(__lowerCamelCase		,	"A"		,	"B"		,	"C"     )


if __name__ == "__main__":
      main()






