#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+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBOID0gMWUyICsgMTsgLy8gMTAwICsgMQpib29sIG5vdF9wcmltZVtOXTsgLy8gKHRydWUgaWYgaXQgaXMgbm90IHByaW1lLCBmYWxzZSBpZiBpdCBpcykKdmVjdG9yPGludD4gcHJpbWVzOwp2b2lkIHNpZXZlKCkgewogICAgbm90X3ByaW1lWzBdID0gbm90X3ByaW1lWzFdID0gdHJ1ZTsKICAgIGZvciAoaW50IGkgPSAyOyBpIDwgTjsgaSArPSAoaSA9PSAyID8gMSA6IDIpKSB7IC8vIChpID09IDIgPyAxIDogMikgQ2FuIHlvdSB0ZWxsIG1lIHdoYXQgdGhpcyBpcz8KICAgICAgICBpZiAobm90X3ByaW1lW2ldID09IHRydWUpIGNvbnRpbnVlOwogICAgICAgIHByaW1lcy5wdXNoX2JhY2soaSk7IC8vIG5ldyBwcmltZQogICAgICAgIGZvciAobG9uZyBsb25nIGogPSBpICogaTsgaiA8IE47IGogKz0gaSkgeyAvLyBtYXJrIGFsbCBtdWx0aXBsZXMgb2YgaQogICAgICAgICAgICBub3RfcHJpbWVbal0gPSB0cnVlOwogICAgICAgIH0KICAgIH0KfQppbnQgbWFpbigpIHsKICAgIHNpZXZlKCk7CiAgICBjb3V0IDw8ICJBbGwgcHJpbWVzIGluIHJhbmdlIFsxLCAiIDw8IE4gPDwgIik6XG4iOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCAoaW50KXByaW1lcy5zaXplKCk7ICsraSkKICAgICAgICBjb3V0IDw8IHByaW1lc1tpXSA8PCAiIFxuIltpICsgMSA9PSBwcmltZXMuc2l6ZSgpXTsKICAgIHJldHVybiAwOwp9