



import math
from collections.abc import Generator



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



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



def  _lowerCAmelCase     (_lowerCAmelCase):
					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(_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  _lowerCAmelCase     ():
					from timeit import timeit

					UpperCamelCase_			= "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__":
	UpperCAmelCase :				Optional[Any]							=int(input("""Calculate primes up to:\n>> """).strip())
	for ret in primes(number):
		print(ret)
	benchmark()





def  _lowerCAmelCase     (_lowerCAmelCase ,						_lowerCAmelCase = 2):
					return round((float(_lowerCAmelCase) * 9 / 5) + 32 ,						_lowerCAmelCase)



def  _lowerCAmelCase     (_lowerCAmelCase ,						_lowerCAmelCase = 2):
					return round(float(_lowerCAmelCase) + 273.15 ,						_lowerCAmelCase)



def  _lowerCAmelCase     (_lowerCAmelCase ,						_lowerCAmelCase = 2):
					return round((float(_lowerCAmelCase) * 9 / 5) + 491.67 ,						_lowerCAmelCase)



def  _lowerCAmelCase     (_lowerCAmelCase ,						_lowerCAmelCase = 2):
					return round((float(_lowerCAmelCase) - 32) * 5 / 9 ,						_lowerCAmelCase)



def  _lowerCAmelCase     (_lowerCAmelCase ,						_lowerCAmelCase = 2):
					return round(((float(_lowerCAmelCase) - 32) * 5 / 9) + 273.15 ,						_lowerCAmelCase)



def  _lowerCAmelCase     (_lowerCAmelCase ,						_lowerCAmelCase = 2):
					return round(float(_lowerCAmelCase) + 459.67 ,						_lowerCAmelCase)



def  _lowerCAmelCase     (_lowerCAmelCase ,						_lowerCAmelCase = 2):
					return round(float(_lowerCAmelCase) - 273.15 ,						_lowerCAmelCase)



def  _lowerCAmelCase     (_lowerCAmelCase ,						_lowerCAmelCase = 2):
					return round(((float(_lowerCAmelCase) - 273.15) * 9 / 5) + 32 ,						_lowerCAmelCase)



def  _lowerCAmelCase     (_lowerCAmelCase ,						_lowerCAmelCase = 2):
					return round((float(_lowerCAmelCase) * 9 / 5) ,						_lowerCAmelCase)



def  _lowerCAmelCase     (_lowerCAmelCase ,						_lowerCAmelCase = 2):
					return round((float(_lowerCAmelCase) - 491.67) * 5 / 9 ,						_lowerCAmelCase)



def  _lowerCAmelCase     (_lowerCAmelCase ,						_lowerCAmelCase = 2):
					return round(float(_lowerCAmelCase) - 459.67 ,						_lowerCAmelCase)



def  _lowerCAmelCase     (_lowerCAmelCase ,						_lowerCAmelCase = 2):
					return round((float(_lowerCAmelCase) * 5 / 9) ,						_lowerCAmelCase)



def  _lowerCAmelCase     (_lowerCAmelCase ,						_lowerCAmelCase = 2):
					return round((float(_lowerCAmelCase) * 1.25 + 273.15) ,						_lowerCAmelCase)



def  _lowerCAmelCase     (_lowerCAmelCase ,						_lowerCAmelCase = 2):
					return round((float(_lowerCAmelCase) * 2.25 + 32) ,						_lowerCAmelCase)



def  _lowerCAmelCase     (_lowerCAmelCase ,						_lowerCAmelCase = 2):
					return round((float(_lowerCAmelCase) * 1.25) ,						_lowerCAmelCase)



def  _lowerCAmelCase     (_lowerCAmelCase ,						_lowerCAmelCase = 2):
					return round((float(_lowerCAmelCase) * 2.25 + 32 + 459.67) ,						_lowerCAmelCase)


if __name__ == "__main__":
	import doctest

	doctest.testmod()
