"""Sieve of Eratosthones."""

import math

N = int(input("Enter n: "))


def sieve(n):
    """Sieve of Eratosthones."""
    l = [True] * (n + 1)
    prime = []
    start = 2
    end = int(math.sqrt(n))
    while start <= end:
        if l[start] is True:
            prime.append(start)
            for i in range(start * start, n + 1, start):
                if l[i] is True:
                    l[i] = False
        start += 1

    for j in range(end + 1, n + 1):
        if l[j] is True:
            prime.append(j)

    return prime


print(sieve(N))