diff --git a/number/soe.cc b/number/soe.cc new file mode 100644 index 0000000..607d938 --- /dev/null +++ b/number/soe.cc @@ -0,0 +1,15 @@ +vector soe(int n) { + vector not_prime(n + 1); + vector res; + for (int i = 2; i <= n; ++i) { + if (not not_prime[i]) { + res.emplace_back(i); + } + for (auto&& x : res) { + if (i * x > n) break; + not_prime[i * x] = 1; + if (i % x == 0) break; + } + } + return res; +}