



'''simple docstring'''




from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


lowerCamelCase							:Dict				    =					{
    '''configuration_timesformer''': ['''TIMESFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''TimesformerConfig'''],
}

try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						lowerCamelCase							:Dict				    =					[
						    '''TIMESFORMER_PRETRAINED_MODEL_ARCHIVE_LIST''',
						    '''TimesformerModel''',
						    '''TimesformerForVideoClassification''',
						    '''TimesformerPreTrainedModel''',
						]

if TYPE_CHECKING:
						from .configuration_timesformer import TIMESFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP, TimesformerConfig

						try:
												if not is_torch_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_timesformer import (
												    TIMESFORMER_PRETRAINED_MODEL_ARCHIVE_LIST,
												    TimesformerForVideoClassification,
												    TimesformerModel,
												    TimesformerPreTrainedModel,
												)

else:
						import sys

						lowerCamelCase							:Union[str, Any]				    =					_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)




'''simple docstring'''




from __future__ import annotations

import math



def 	a			( lowerCamelCase__    ):
			'''simple docstring'''





			if num <= 0:
						A_	:						List[Any]	=     f'{num}: Invalid input, please enter a positive integer.'
						raise ValueError(lowerCamelCase__    )

			A_	:						Dict	=     [True] * (num + 1)
			A_	:						List[Any]	=     []
			A_	:						Tuple	=     2
			A_	:						Optional[int]	=     int(math.sqrt(lowerCamelCase__    )    )

			while start <= end:
						# If start is a prime
						if sieve[start] is True:
									prime.append(lowerCamelCase__    )

									# Set multiples of start be False
									for i in range(start * start						,      num + 1						,      lowerCamelCase__    ):
												if sieve[i] is True:
															A_	:						List[Any]	=     False

						start += 1

			for j in range(end + 1						,      num + 1    ):
						if sieve[j] is True:
									prime.append(lowerCamelCase__    )

			return prime


if __name__ == "__main__":
						print(prime_sieve(int(input('''Enter a positive integer: ''').strip())))