#include <iostream>
#include <chrono>
#define sqr(x) ((x) * (x))
using namespace std;
auto start = chrono::steady_clock::now();
int primes[1000000] = {2};
int count = 0;
int main() {
for (int n = 3; n < 1000000; n += 2) {
bool is_prime = true;
for (int i = 0; sqr(primes[i]) <= n; i++) {
if (n % primes[i] == 0) {
is_prime = false;
break;
}
}
if (is_prime) {
primes[count++] = n;
}
}
cout << count << endl;
auto elapsed = chrono::duration_cast<chrono::milliseconds>(
chrono::steady_clock::now( ) - start
);
std::cout << "milliseconds since start: " << elapsed.count() << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y2hyb25vPgoKI2RlZmluZSBzcXIoeCkgKCh4KSAqICh4KSkKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgphdXRvIHN0YXJ0ID0gY2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpOwoKaW50IHByaW1lc1sxMDAwMDAwXSA9IHsyfTsKaW50IGNvdW50ID0gMDsKCmludCBtYWluKCkgewogICAgZm9yIChpbnQgbiA9IDM7IG4gPCAxMDAwMDAwOyBuICs9IDIpIHsKICAgICAgICBib29sIGlzX3ByaW1lID0gdHJ1ZTsKICAgICAgICBmb3IgKGludCBpID0gMDsgc3FyKHByaW1lc1tpXSkgPD0gbjsgaSsrKSB7CiAgICAgICAgICAgIGlmIChuICUgcHJpbWVzW2ldID09IDApIHsKICAgICAgICAgICAgICAgIGlzX3ByaW1lID0gZmFsc2U7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoaXNfcHJpbWUpIHsKICAgICAgICAgICAgcHJpbWVzW2NvdW50KytdID0gbjsKICAgICAgICB9CiAgICB9CgogICAgY291dCA8PCBjb3VudCA8PCBlbmRsOwogICAgCiAgICBhdXRvIGVsYXBzZWQgPSBjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8Y2hyb25vOjptaWxsaXNlY29uZHM+KAogICAgCWNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coICkgLSBzdGFydAogICAgCSk7CiAgICAKICAgIHN0ZDo6Y291dCA8PCAibWlsbGlzZWNvbmRzIHNpbmNlIHN0YXJ0OiAiIDw8IGVsYXBzZWQuY291bnQoKSA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9Cgo=