欧拉筛法

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;
}
posted @ 2023-05-16 15:57  我的名字好长啊  阅读(23)  评论(0)    收藏  举报