

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

def 			__snake_case	(   __UpperCamelCase  :   int						):



      """simple docstring"""

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

      # Odd sieve for numbers in range [3, num - 1]
      A_	     =							bytearray(B"\x01"						) * ((num >> 1) - 1)

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

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


if __name__ == "__main__":
      import doctest

      doctest.testmod()


import pytest

from datasets.utils.version import Version

@pytest.mark.parametrize(
    "other, expected_equality"							,[
        (Version("1.0.0"						), True),
        ("1.0.0", True),
        (Version("2.0.0"						), False),
        ("2.0.0", False),
        ("1", False),
        ("a", False),
        (1, False),
        (None, False),
    ]							,)
def 			__snake_case	(   __UpperCamelCase  :   Any							,__UpperCamelCase  :   List[Any]						):



      """simple docstring"""

      A_	     =							Version("1.0.0"						)
      assert (version == other) is expected_equality
      assert (version != other) is not expected_equality
      assert (hash(__UpperCamelCase						) == hash(__UpperCamelCase						)) is expected_equality