数论:整除与素数
整除与素数
素数
\(\pi(n)\) 表示不小于 \(n\) 的正整数中素数的个数。
素数个数估计:\(\pi(n) \sim \dfrac{n}{\ln n}\)。
Meissel-Lehmer
Meissel-Lehmer 在亚线性时间内求出 \(\pi(n)\)。
。。。
线性筛素数
核心:让每一个合数被其最小质因数筛到。
for (int i = 2; i <= n; ++i) {
if (!vis[i]) {
prime[++cnt] = i;
}
for (int j = 1; j <= cnt; ++j) {
if (i * prime[j] > n) break;
vis[i * prime[j]] = true;
if (i % prime[j] == 0) break;
}
}

浙公网安备 33010602011771号