

'''simple docstring'''

import math

def     __magic_name__       ( A							)			->		list[int]:

	if not isinstance(A					,   A							):
		snake_case							 =				F'''Input value of [number={number}] must be an integer'''
		raise TypeError(A							)
	if number < 1:
		snake_case							 =				F'''Input value of [number={number}] must be a positive integer'''
		raise ValueError(A							)
	snake_case							 =				[number]
	while number != 1:
		if number % 2 == 0:
			snake_case							 =				math.floor(math.sqrt(A							)							)
		else:
			snake_case							 =				math.floor(
			    math.sqrt(A							) * math.sqrt(A							) * math.sqrt(A							)							)
		sequence.append(A							)
	return sequence


if __name__ == "__main__":
						import doctest

						doctest.testmod()








'''simple docstring'''

from itertools import compress, repeat
from math import ceil, sqrt

def     __magic_name__       ( A							)			->		list[int]:

	if num <= 2:
		return []
	if num == 3:
		return [2]

	# Odd sieve for numbers in range [3, num - 1]
	snake_case							 =				bytearray(b'\x01'							) * ((num >> 1) - 1)

	for i in range(3					,   int(sqrt(A							)							) + 1					,   2							):
		if sieve[(i >> 1) - 1]:
			snake_case							 =				i**2
			snake_case							 =				repeat(
			    0					,   ceil((num - i_squared) / (i << 1)							)							)

	return [2] + list(compress(range(3					,   A					,   2							)					,   A							)							)


if __name__ == "__main__":
						import doctest

						doctest.testmod()





