ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

质数筛

2026/8/4 9:33:34 拓冰建站 浏览量
质数筛

1.埃拉托斯特尼筛法
vector sieve(int n) {
vector is_prime(n + 1, true);
is_prime[0] = is_prime[1] = false;

for (int i = 2; i * i <= n; i++) {if (is_prime[i]) {for (int j = i * i; j <= n; j += i) {is_prime[j] = false;}}
}
return is_prime;

}
2. 欧拉筛/线性筛
vector linear_sieve(int n) {
vector is_prime(n + 1, true);
vector primes;

for (int i = 2; i <= n; i++) {if (is_prime[i]) {primes.push_back(i);}for (int j = 0; j < primes.size() && i * primes[j] <= n; j++) {is_prime[i * primes[j]] = false;if (i % primes[j] == 0) break;  // 关键步骤}
}
return primes;

}