






import math
from collections.abc import Generator


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


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


def   _A       (    SCREAMING_SNAKE_CASE__  :     int	):
    UpperCamelCase	: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):
        UpperCamelCase	:Union[str, Any]     							=       int(math.sqrt(SCREAMING_SNAKE_CASE__	)	) + 1
        for j in range(3					,  SCREAMING_SNAKE_CASE__					,  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

    UpperCamelCase	:Dict     							=       '''from __main__ import slow_primes, primes, fast_primes'''
    print(timeit('''slow_primes(1_000_000_000_000)'''					,  setup=SCREAMING_SNAKE_CASE__					,  number=1000000	)	)
    print(timeit('''primes(1_000_000_000_000)'''					,  setup=SCREAMING_SNAKE_CASE__					,  number=1000000	)	)
    print(timeit('''fast_primes(1_000_000_000_000)'''					,  setup=SCREAMING_SNAKE_CASE__					,  number=1000000	)	)


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













def   _A       (    SCREAMING_SNAKE_CASE__  :     int	):
    UpperCamelCase	:Optional[Any]     							=       9

    while num > 0:
        if num % 10 != digit:
            return False
        num //= 100
        digit -= 1

    return True


def   _A       (    ):
    UpperCamelCase	:List[str]     							=       138902663

    while not is_square_form(num * num	):
        if num % 10 == 3:
            num -= 6  # (3 - 6) % 10 = 7
        else:
            num -= 4  # (7 - 4) % 10 = 3

    return num * 10


if __name__ == "__main__":
 print(f'''{solution() = }''')





