






import math
from collections.abc import Generator


def     _a					(       UpperCamelCase_   :			int				)	->				Generator[int, None, None]:
						"""simple docstring"""







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


def     _a					(       UpperCamelCase_   :			int				)	->				Generator[int, None, None]:
						"""simple docstring"""







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


def     _a					(       UpperCamelCase_   :			int				)	->				Generator[int, None, None]:
						"""simple docstring"""







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


def     _a					(       )	->				Optional[Any]:
						"""simple docstring"""







						from timeit import timeit

						lowerCAmelCase__	 =  "from __main__ import slow_primes, primes, fast_primes"
						print(timeit("slow_primes(1_000_000_000_000)"      ,				setup=UpperCamelCase_      ,				number=1_000_000				)				)
						print(timeit("primes(1_000_000_000_000)"      ,				setup=UpperCamelCase_      ,				number=1_000_000				)				)
						print(timeit("fast_primes(1_000_000_000_000)"      ,				setup=UpperCamelCase_      ,				number=1_000_000				)				)


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














def     _a					(       UpperCamelCase_   :			int = 100				)	->				int:
						"""simple docstring"""







						lowerCAmelCase__	 =  1
						lowerCAmelCase__	 =  0
						for i in range(1      ,				num + 1				):
												fact *= i

						for j in str(UpperCamelCase_				):
												result += int(UpperCamelCase_				)

						return result


if __name__ == "__main__":
	print(solution(int(input('''Enter the Number: ''').strip())))






