




"""simple docstring"""







import math
from collections.abc import Generator





def     __snake_case   (							_lowercase						):


    """simple docstring"""







    UpperCamelCase										=  (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 ,_lowercase						):
            if (i % j) == 0:
                break
        else:
            yield i





def     __snake_case   (							_lowercase						):


    """simple docstring"""







    UpperCamelCase										=  (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)
        UpperCamelCase										=  int(math.sqrt(_lowercase						)						) + 1
        for j in range(2 ,_lowercase						):
            if (i % j) == 0:
                break
        else:
            yield i





def     __snake_case   (							_lowercase						):


    """simple docstring"""







    UpperCamelCase										=  (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):
        UpperCamelCase										=  int(math.sqrt(_lowercase						)						) + 1
        for j in range(3 ,_lowercase ,2						):
            # As we removed the even numbers, we don't need them now
            if (i % j) == 0:
                break
        else:
            yield i





def     __snake_case   (							):


    """simple docstring"""







    from timeit import timeit

    UpperCamelCase										=  '''from __main__ import slow_primes, primes, fast_primes'''
    print(timeit('''slow_primes(1_000_000_000_000)''' ,setup=_lowercase ,number=100_0000						)						)
    print(timeit('''primes(1_000_000_000_000)''' ,setup=_lowercase ,number=100_0000						)						)
    print(timeit('''fast_primes(1_000_000_000_000)''' ,setup=_lowercase ,number=100_0000						)						)


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





"""simple docstring"""







from math import pi





def     __snake_case   (							_lowercase						):


    """simple docstring"""







    return degree / (180 / pi)


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

  testmod()