



import math
from collections.abc import Generator


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


def 						__SCREAMING_SNAKE_CASE      (SCREAMING_SNAKE_CASE__ ):
						snake_case_     =			(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_     =			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 						__SCREAMING_SNAKE_CASE      ():
						from timeit import timeit

						snake_case_     =			'''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__":
					lowerCAmelCase_ 			=			int(input('''Calculate primes up to:\n>> ''').strip())
					for ret in primes(number):
										print(ret)
					benchmark()


def 						__SCREAMING_SNAKE_CASE      (SCREAMING_SNAKE_CASE__						,	SCREAMING_SNAKE_CASE__ ):
						return (input_a, input_a).count(0 ) % 2


def 						__SCREAMING_SNAKE_CASE      ():
						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))