'''simple docstring'''




import numpy as np

__SCREAMING_SNAKE_CASE	:					Optional[Any]					=  [
    ["""a""", """b""", """c""", """d""", """e"""],
    ["""f""", """g""", """h""", """i""", """k"""],
    ["""l""", """m""", """n""", """o""", """p"""],
    ["""q""", """r""", """s""", """t""", """u"""],
    ["""v""", """w""", """x""", """y""", """z"""],
]

class      lowerCamelCase_     :
      '''simple docstring'''

      def __init__(	self						:    Union[str, Any]	):
             _UpperCAmelCase					:  List[str]											=   np.array(A	)




      def 					_A     (	self						:    int						, A						:    str	):
             _UpperCAmelCase				,  _UpperCAmelCase					:  List[Any]											=   np.where(letter == self.SQUARE	)
             _UpperCAmelCase					:  int											=   np.concatenate([indexa + 1, indexa + 1]	)
             return indexes




      def 					_A     (	self						:    Optional[int]						, A						:    int						, A						:    int	):
             return self.SQUARE[indexa - 1, indexa - 1]




      def 					_A     (	self						:    int						, A						:    str	):
             _UpperCAmelCase					:  List[str]											=   message.lower()
             _UpperCAmelCase					:  List[Any]											=   message.replace("j"						, "i"	)

             _UpperCAmelCase					:  Optional[Any]											=   ""
             for letter_index in range(len(A	)	):
                    if message[letter_index] != " ":
                           _UpperCAmelCase					:  int											=   self.letter_to_numbers(message[letter_index]	)
                           _UpperCAmelCase					:  Optional[int]											=   encoded_message + str(numbers[0]	) + str(numbers[1]	)
                    elif message[letter_index] == " ":
                           _UpperCAmelCase					:  Optional[Any]											=   encoded_message + " "

             return encoded_message





      def 					_A     (	self						:    Optional[int]						, A						:    str	):
             _UpperCAmelCase					:  Optional[int]											=   message.replace(" "						, "  "	)
             _UpperCAmelCase					:  Any											=   ""
             for numbers_index in range(int(len(A	) / 2	)	):
                    if message[numbers_index * 2] != " ":
                           _UpperCAmelCase					:  List[Any]											=   message[numbers_index * 2]
                           _UpperCAmelCase					:  Dict											=   message[numbers_index * 2 + 1]

                           _UpperCAmelCase					:  Union[str, Any]											=   self.numbers_to_letter(int(A	)						, int(A	)	)
                           _UpperCAmelCase					:  Optional[Any]											=   decoded_message + letter
                    elif message[numbers_index * 2] == " ":
                           _UpperCAmelCase					:  str											=   decoded_message + " "

             return decoded_message


'''simple docstring'''




from itertools import compress, repeat
from math import ceil, sqrt

def      UpperCamelCase_							( _UpperCAmelCase  :				int   )   ->   list[int]:


       """simple docstring"""







       if num <= 2:
              return []
       if num == 3:
              return [2]

       # Odd sieve for numbers in range [3, num - 1]
       _UpperCAmelCase					:  Optional[int]											=   bytearray(b"\x01"   ) * ((num >> 1) - 1)

       for i in range(3      ,     int(sqrt(_UpperCAmelCase   )   ) + 1      ,     2   ):
              if sieve[(i >> 1) - 1]:
                     _UpperCAmelCase					:  List[Any]											=   i**2
                     _UpperCAmelCase					:  Optional[int]											=   repeat(
                         0      ,     ceil((num - i_squared) / (i << 1)   )   )

       return [2] + list(compress(range(3      ,     _UpperCAmelCase      ,     2   )      ,     _UpperCAmelCase   )   )


if __name__ == "__main__":
  import doctest

  doctest.testmod()

