跳到正文
信奥逐课

第 474 课

埃氏筛

🔵 基础 约 7 分钟

一句话理解

埃氏筛:每找到质数划掉它的倍数。

为什么要学

O(n log log n) 筛 1..n。

讲解

从 i*i 开始划。

例子

for (int i = 2; i <= n; i++) if (!vis[i]) {
    for (int j = i; (long long)i * j <= n; j++) vis[i * j] = 1;
}

质数的倍数都是合数。

常见错误

练习 做完再看下一课

埃氏筛可以预处理 1..n 的所有质数。

在线练习 C++ 在浏览器里编译,代码不会上传

Ctrl / ⌘ + Enter 运行 · Tab 缩进

输出
 

进度保存在本机浏览器里。

左右方向键也可翻课