def main():
    # 사용자로부터 정수를 입력받음 
    number = int(input("어떤 정수까지의 소수들을 알고 싶은가? "))
    # 소수값들을 저장하기 위한 배열 정의
    array = list(range(2, number + 1))

    for i in range(2, number):
        if array[i - 2]:
            if array[i - 2] ** 2 > number:
                break
            else:
                factor = array[i - 2]
                # factor의 배수들을 array에서 제거
                while factor * i <= number:
                    if array[(factor * i) - 2]:
                        array[(factor * i) - 2] = 0
                    factor += 1    
    # 결과 출력
    print(number,"까지의 소수들은 다음과 같다.: ", end = "")
    
    for i in range(2, number):
        if array[i - 2]:
            print(array[i - 2], " ", end = "")
    print()

if __name__ == "__main__":
    main()
