


_A		:				Union[str, Any]									=       '''Input must be a string of 8 numbers plus letter'''
_A		:				str									=       '''TRWAGMYFPDXBNJZSQVHLCKE'''



def     __lowerCAmelCase						(							snake_case	:    str )       ->							bool:

   if not isinstance(snake_case						,      snake_case ):
      __lowerCamelCase:				Any     =	f'Expected string as input, found {type(snake_case ).__name__}'
      raise TypeError(snake_case )

   __lowerCamelCase:				Optional[Any]     =	spanish_id.replace("""-"""						,      """""" ).upper()
   if len(snake_case ) != 9:
      raise ValueError(snake_case )

   try:
      __lowerCamelCase:				str     =	int(spanish_id_clean[0:8] )
      __lowerCamelCase:				Dict     =	spanish_id_clean[8]
   except ValueError as ex:
      raise ValueError(snake_case ) from ex

   if letter.isdigit():
      raise ValueError(snake_case )

   return letter == LOOKUP_LETTERS[number % 23]


if __name__ == "__main__":
   import doctest

   doctest.testmod()






def     __lowerCAmelCase						(							snake_case	:    int = 1000000 )       ->							int:
   __lowerCamelCase:				Union[str, Any]     =	set(range(3						,      snake_case						,      2 ) )
   primes.add(2 )
   for p in range(3						,      snake_case						,      2 ):
      if p not in primes:
         continue
      primes.difference_update(set(range(p * p						,      snake_case						,      snake_case ) ) )

   __lowerCamelCase:				Any     =	[float(snake_case ) for n in range(limit + 1 )]

   for p in primes:
      for n in range(snake_case						,      limit + 1						,      snake_case ):
         phi[n] *= 1 - 1 / p

   return int(sum(phi[2:] ) )


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


