import math
n = int(input("Enter n: "))

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

print(sieve(n))