


def 				UpperCamelCase_(      lowerCamelCase_ )    ->						list[int]:

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

    _lowercase       :							str      		=		[True] * (num + 1)

    _lowercase       :							str      		=		2
    while p * p <= num:
        if primes[p]:
            for i in range(p * p							, num + 1							, lowerCamelCase_ ):
                _lowercase       :							Dict      		=		False
        p += 1

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


if __name__ == "__main__":
 import doctest

 doctest.testmod()

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






from __future__ import annotations

from math import ceil, floor, sqrt



def 				UpperCamelCase_(      lowerCamelCase_ = 200_0000 )    ->						int:
    _lowercase       :							list[int]      		=		[0]
    _lowercase       :							int

    for idx in range(1							, ceil(sqrt(target * 2 ) * 1.1 ) ):
        triangle_numbers.append(triangle_numbers[-1] + idx )

    # we want this to be as close as possible to target
    _lowercase       :							int      		=		0
    # the area corresponding to the grid that gives the product closest to target
    _lowercase       :							int      		=		0
    # an estimate of b, using the quadratic formula
    _lowercase       :							float
    # the largest integer less than b_estimate
    _lowercase       :							int
    # the largest integer less than b_estimate
    _lowercase       :							int
    # the triangle number corresponding to b_floor
    _lowercase       :							int
    # the triangle number corresponding to b_ceil
    _lowercase       :							int

    for idx_a, triangle_a in enumerate(triangle_numbers[1:]							, 1 ):
        _lowercase       :							Optional[int]      		=		(-1 + sqrt(1 + 8 * target / triangle_a )) / 2
        _lowercase       :							List[str]      		=		floor(lowerCamelCase_ )
        _lowercase       :							Dict      		=		ceil(lowerCamelCase_ )
        _lowercase       :							List[str]      		=		triangle_numbers[b_floor]
        _lowercase       :							List[str]      		=		triangle_numbers[b_ceil]

        if abs(target - triangle_b_first_guess * triangle_a ) < abs(
            target - best_product ):
            _lowercase       :							Union[str, Any]      		=		triangle_b_first_guess * triangle_a
            _lowercase       :							Union[str, Any]      		=		idx_a * b_floor

        if abs(target - triangle_b_second_guess * triangle_a ) < abs(
            target - best_product ):
            _lowercase       :							Any      		=		triangle_b_second_guess * triangle_a
            _lowercase       :							Optional[Any]      		=		idx_a * b_ceil

    return area


if __name__ == "__main__":
 print(F"{solution() = }")


