
"""simple docstring"""






from collections import namedtuple

lowerCamelCase__ :       List[str]						     =			namedtuple("from_to", "from_ to")

lowerCamelCase__ :       Any						     =			{
    "cubicmeter": from_to(1, 1),
    "litre": from_to(0.0_0_1, 1000),
    "kilolitre": from_to(1, 1),
    "gallon": from_to(0.0_0_4_5_4, 264.172),
    "cubicyard": from_to(0.7_6_4_5_5, 1.3_0_7_9_5),
    "cubicfoot": from_to(0.0_2_8, 35.3147),
    "cup": from_to(0.0_0_0_2_3_6_5_8_8, 4226.75),
}





def __A						(   a_ :							float		,		a_ :							str		,		a_ :							str     )->							float:




		'''simple docstring'''






		if from_type not in METRIC_CONVERSION:
				raise ValueError(
				    F"Invalid 'from_type' value: {from_type!r}  Supported values are:\n"
				    + ''', '''.join(a_     )     )
		if to_type not in METRIC_CONVERSION:
				raise ValueError(
				    F"Invalid 'to_type' value: {to_type!r}.  Supported values are:\n"
				    + ''', '''.join(a_     )     )
		return value * METRIC_CONVERSION[from_type].from_ * METRIC_CONVERSION[to_type].to


if __name__ == "__main__":
							import doctest

							doctest.testmod()







"""simple docstring"""






def __A						(   a_ :							int     )->							list[int]:




		'''simple docstring'''






		if num <= 0:
				raise ValueError('''Input must be a positive integer'''     )

		SCREAMING_SNAKE_CASE       :     Optional[int]				= [True] * (num + 1)

		SCREAMING_SNAKE_CASE       :     Optional[Any]				= 2
		while p * p <= num:
				if primes[p]:
						for i in range(p * p		,		num + 1		,		a_     ):
								SCREAMING_SNAKE_CASE       :     Any				= False
				p += 1

		return [prime for prime in range(2		,		num + 1     ) if primes[prime]]


if __name__ == "__main__":
					import doctest

					doctest.testmod()

					lowerCamelCase__ :       str						     =			int(input("Enter a positive integer: ").strip())
					print(prime_sieve_eratosthenes(user_num))





