Algorithm / Math

素数筛法基础

33 字约 1 分钟

摘要介绍埃氏筛及其常见优化写法,用于高效求解区间内素数。

改进版埃氏筛

对于每个数 xx ,只需要从 x2x^2 开始,把 x2,(x+1)x,...,(n/x)xx^2 , (x+1)x ,..., (n/x)x 筛去即可

for (int i = 2; i <= n; i++) {
    if (flag[i]) continue;
    p[cnt++] = i;
    for (int j = i; j <= n / i; j++) flag[i * j] = 1;
}

评论