



'''simple docstring'''





import math
from collections.abc import Generator
def 		_a   (  lowerCamelCase_							):
   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					,						lowerCamelCase_							):
         if (i % j) == 0:
            break
      else:
         yield i
def 		_a   (  lowerCamelCase_							):
   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   :							int						  =int(math.sqrt(lowerCamelCase_							)							) + 1
      for j in range(2					,						lowerCamelCase_							):
         if (i % j) == 0:
            break
      else:
         yield i
def 		_a   (  lowerCamelCase_							):
   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   :							str						  =int(math.sqrt(lowerCamelCase_							)							) + 1
      for j in range(3					,						lowerCamelCase_					,						2							):
         # As we removed the even numbers, we don't need them now
         if (i % j) == 0:
            break
      else:
         yield i
def 		_a   (  ):
   from timeit import timeit

   snake_case   :							Tuple						  ='''from __main__ import slow_primes, primes, fast_primes'''
   print(timeit('''slow_primes(1_000_000_000_000)'''					,						setup=lowerCamelCase_					,						number=1_00_00_00							)							)
   print(timeit('''primes(1_000_000_000_000)'''					,						setup=lowerCamelCase_					,						number=1_00_00_00							)							)
   print(timeit('''fast_primes(1_000_000_000_000)'''					,						setup=lowerCamelCase_					,						number=1_00_00_00							)							)


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










'''simple docstring'''





def 		_a   (  lowerCamelCase_							):
   return "".join(chr(ord(lowerCamelCase_							) + 32							) if '''A''' <= char <= '''Z''' else char for char in word							)


if __name__ == "__main__":
      from doctest import testmod

      testmod()





