def    lowerCAmelCase_ (     __A							)     ->				bool:







      '''simple docstring'''


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




def    lowerCAmelCase_ (     __A							)     ->				bool:







      '''simple docstring'''


      UpperCAmelCase__								=  credit_card_number
      UpperCAmelCase__								=  0
      UpperCAmelCase__								=  len(__A							) - 2
      for i in range(__A,  -1,  -2							):
            #  double the value of every second digit
            UpperCAmelCase__								=  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
            UpperCAmelCase__								=  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    lowerCAmelCase_ (     __A							)     ->				bool:







      '''simple docstring'''


      UpperCAmelCase__								=  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')




import math




def    lowerCAmelCase_ (     __A							)     ->				bool:







      '''simple docstring'''


      return math.sqrt(__A							) * math.sqrt(__A							) == num




def    lowerCAmelCase_ (     __A							)     ->				bool:







      '''simple docstring'''


      UpperCAmelCase__								=  0
      UpperCAmelCase__								=  n
      while left <= right:
            UpperCAmelCase__								=  (left + right) // 2
            if mid**2 == n:
                  return True
            elif mid**2 > n:
                  UpperCAmelCase__								=  mid - 1
            else:
                  UpperCAmelCase__								=  mid + 1
      return False


if __name__ == "__main__":
      import doctest

      doctest.testmod()



