/// 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 = 10000000;
    vector<bool> primes(maxint);
    for(unsigned i = 2; i < sqrt(maxint); )
    {
        for(unsigned j = 2; j <= maxint/i; ++j)
            primes[j*i] = 1; /// multiples of i are composite
        while(primes[++i]);
    }
    print(primes);
}

