#include <bits/stdc++.h>
using namespace std;
const int N = 1e2 + 1; // 100 + 1
bool not_prime[N]; // (true if it is not prime,false if it is)
vector<int> primes;
void sieve() {
not_prime[0] = not_prime[1] = true;
for (int i = 2; i < N; i += (i == 2 ? 1 : 2)) { // (i == 2 ? 1 : 2) Can you tell me what this is?
if (not_prime[i] == true) continue;
primes.push_back(i); // new prime+
for (long long j = i * i; j < N; j += i) { // mark all multiples of i
not_prime[j] = true;
}
}
}
int main() {
sieve();
cout << "All primes in range [1, " << N << "):\n";
for (int i = 0; i < (int)primes.size(); ++i)
cout << primes[i] << " \n"[i + 1 == primes.size()];
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBOID0gMWUyICsgMTsgLy8gMTAwICsgMQpib29sIG5vdF9wcmltZVtOXTsgLy8gKHRydWUgaWYgaXQgaXMgbm90IHByaW1lLGZhbHNlIGlmIGl0IGlzKQp2ZWN0b3I8aW50PiBwcmltZXM7CnZvaWQgc2lldmUoKSB7CiAgICBub3RfcHJpbWVbMF0gPSBub3RfcHJpbWVbMV0gPSB0cnVlOwogICAgZm9yIChpbnQgaSA9IDI7IGkgPCBOOyBpICs9IChpID09IDIgPyAxIDogMikpIHsgLy8gKGkgPT0gMiA/IDEgOiAyKSBDYW4geW91IHRlbGwgbWUgd2hhdCB0aGlzIGlzPwogICAgICAgIGlmIChub3RfcHJpbWVbaV0gPT0gdHJ1ZSkgY29udGludWU7CiAgICAgICAgcHJpbWVzLnB1c2hfYmFjayhpKTsgLy8gbmV3IHByaW1lKwogICAgICAgIGZvciAobG9uZyBsb25nIGogPSBpICogaTsgaiA8IE47IGogKz0gaSkgeyAvLyBtYXJrIGFsbCBtdWx0aXBsZXMgb2YgaQogICAgICAgICAgICBub3RfcHJpbWVbal0gPSB0cnVlOwogICAgICAgIH0KICAgIH0KfQppbnQgbWFpbigpIHsKICAgIHNpZXZlKCk7CiAgICBjb3V0IDw8ICJBbGwgcHJpbWVzIGluIHJhbmdlIFsxLCAiIDw8IE4gPDwgIik6XG4iOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCAoaW50KXByaW1lcy5zaXplKCk7ICsraSkKICAgICAgICBjb3V0IDw8IHByaW1lc1tpXSA8PCAiIFxuIltpICsgMSA9PSBwcmltZXMuc2l6ZSgpXTsKICAgIHJldHVybiAwOwp9