# Arup Guha
# 6/19/2017
# Prime Sieve

def main():

    n = int(input("To what bound do you want your prime list?\n"))

    isPrime = []
    for i in range(n+1):
        isPrime.append(True)
    isPrime[0] = False
    isPrime[1] = False

    i = 2

    # Outer loop of prime sieve.
    while i*i <= n:

        # Hasn't been crossed off, is prime.
        if isPrime[i]:

            # Cross off all multiples of i.
            for j in range(2*i,n+1,i):
                isPrime[j] = False 
        i += 1

    # Build our prime list from T/F array.
    primeList = []
    for i in range(n+1):
        if isPrime[i]:
            primeList.append(i)

    print(primeList)

main()
    
