欧拉筛法
vector<int> func(int N) {
vector<bool> u(N + 1);
vector<int> su;
fill_n(u.begin(), u.size(), true);
for (int i = 2; i <= u.size(); i++) {
if (u[i]) su.push_back(i);
for (int j : su) {
if (i * j > N) break;
u[i * j] = false;
if (i % j == 0) break;// 此时 j 为 i 的最小素因子,
}
}
return su;
}