'''simple docstring'''




from ..utils import DummyObject, requires_backends

class      lowerCamelCase_     (metaclass=snake_case__   ):
      '''simple docstring'''

      __UpperCamelCase:  Any      =						["torch", "librosa"]




      def __init__(	self						:    Dict						, *A						:    str						, **A						:    Union[str, Any]	):
             requires_backends(self						, ["torch", "librosa"]	)




      @classmethod
      def 					_A     (	cls						:    Any						, *A						:    Optional[Any]						, **A						:    Any	):
             requires_backends(cls						, ["torch", "librosa"]	)





      @classmethod
      def 					_A     (	cls						:    Dict						, *A						:    int						, **A						:    Optional[int]	):
             requires_backends(cls						, ["torch", "librosa"]	)

class      lowerCamelCase_     (metaclass=snake_case__   ):
      '''simple docstring'''

      __UpperCamelCase:  Union[str, Any]      =						["torch", "librosa"]




      def __init__(	self						:    Tuple						, *A						:    Union[str, Any]						, **A						:    Dict	):
             requires_backends(self						, ["torch", "librosa"]	)




      @classmethod
      def 					_A     (	cls						:    List[Any]						, *A						:    int						, **A						:    Optional[int]	):
             requires_backends(cls						, ["torch", "librosa"]	)





      @classmethod
      def 					_A     (	cls						:    List[Any]						, *A						:    Tuple						, **A						:    List[Any]	):
             requires_backends(cls						, ["torch", "librosa"]	)


'''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()

