#include <iostream>
#include <list>
#include <stdlib.h>
using namespace std;

int main(int argc, char** argv)
{
    if(argc != 2)
    {
        cerr << "Usage: primes <sieve-size>" << endl;
        return(1);
    }
    int n = atoi(argv[1]);
    if(n < 2)
    {
        cerr << "invalid sieve-size" << endl;
        return(1);
    }
    list<int> numbers;
    for(int i = 2; i<=n; i++) numbers.push_back(i);
    for(list<int>::iterator it = numbers.begin(); it != numbers.end(); ++it)
    {
        for(int mult = *it*2; mult <= n; mult+=*it) numbers.remove(mult);
        cout << *it << endl;
    }
    return(0);
}


