/// G. Hagopian - PPP4 ex11

#include <iostream>
#include <vector>
#include <cmath>

using namespace std;

void print(vector<bool> v) {
    int j = 0;
    for(uint64_t i = 0; i < v.size(); ++i) {
        if(v[i]) {
            cout << i << '\t';
            if((j+1)%10==0)
                cout << endl;
            ++j;
        }
    }

}

int main() {
    unsigned maxint = 100000;
    vector<bool> primes(maxint);
    for(unsigned i = 2; i < maxint; ++i)
        primes[i] = 1;
    for(unsigned i = 2; i < sqrt(maxint); ) {
        for(unsigned j = 2; j <= maxint/i; ++j)
            primes[j*i] = 0; /// multiples of i are composite
        while(!primes[++i]);
    }
    print(primes);
}


