

import math
from collections.abc import Generator


def 							__lowercase     (	UpperCAmelCase__   ):

					"""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 							__lowercase     (	UpperCAmelCase__   ):

					"""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 							__lowercase     (	UpperCAmelCase__   ):

					"""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 							__lowercase     (	):

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









import random


def 							__lowercase     (	UpperCAmelCase__   ):

					"""simple docstring"""






					def is_sorted(UpperCAmelCase__   ):
										for i in range(len(UpperCAmelCase__   ) - 1   ):
															if collection[i] > collection[i + 1]:
																				return False
										return True

					while not is_sorted(UpperCAmelCase__   ):
										random.shuffle(UpperCAmelCase__   )
					return collection


if __name__ == "__main__":
		lowerCamelCase   					=  input('''Enter numbers separated by a comma:\n''').strip()
		lowerCamelCase   					=  [int(item) for item in user_input.split(''',''')]
		print(bogo_sort(unsorted))






