






"""simple docstring"""





import math
from collections.abc import Generator



def      __lowercase       (     a			:					Dict			)       ->       Generator[int, None, None]:
      __snake_case   :     Generator	      =(i for i in range(1							,		(max_n + 1)			))
      for i in (n for n in numbers if n > 1):
            for j in range(2							,		a			):
                  if (i % j) == 0:
                        break
            else:
                  yield i



def      __lowercase       (     a			:					List[str]			)       ->       Generator[int, None, None]:
      __snake_case   :     Generator	      =(i for i in range(1							,		(max_n + 1)			))
      for i in (n for n in numbers if n > 1):
            # only need to check for factors up to sqrt(i)
            __snake_case   :     List[str]	      =int(math.sqrt(a			)			) + 1
            for j in range(2							,		a			):
                  if (i % j) == 0:
                        break
            else:
                  yield i



def      __lowercase       (     a			:					int			)       ->       Generator[int, None, None]:
      __snake_case   :     Generator	      =(i for i in range(1							,		(max_n + 1)							,		2			))
      # It's useless to test even numbers as they will not be prime
      if max_n > 2:
            yield 2  # Because 2 will not be tested, it's necessary to yield it now
      for i in (n for n in numbers if n > 1):
            __snake_case   :     Dict	      =int(math.sqrt(a			)			) + 1
            for j in range(3							,		a							,		2			):
                  # As we removed the even numbers, we don't need them now
                  if (i % j) == 0:
                        break
            else:
                  yield i



def      __lowercase       (     )       ->       Any:
      from timeit import timeit

      __snake_case   :     Union[str, Any]	      ='from __main__ import slow_primes, primes, fast_primes'
      print(timeit('''slow_primes(1_000_000_000_000)'''							,		setup=a							,		number=1_000_000			)			)
      print(timeit('''primes(1_000_000_000_000)'''							,		setup=a							,		number=1_000_000			)			)
      print(timeit('''fast_primes(1_000_000_000_000)'''							,		setup=a							,		number=1_000_000			)			)


if __name__ == "__main__":
    UpperCamelCase_						:					Tuple      				=			int(input("""Calculate primes up to:\n>> """).strip())
    for ret in primes(number):
        print(ret)
    benchmark()








def 		_lowerCamelCase					(       UpperCamelCase       ,  UpperCamelCase				)      ->		int:





  """simple docstring"""





  return (input_a, input_a).count(0				) % 2


def 		_lowerCamelCase					(       )      ->		None:





  """simple docstring"""





  assert xor_gate(0       ,  0				) == 0
  assert xor_gate(0       ,  1				) == 1
  assert xor_gate(1       ,  0				) == 1
  assert xor_gate(1       ,  1				) == 0


if __name__ == "__main__":
   print(xor_gate(0, 0))
   print(xor_gate(0, 1))
