埃氏筛为什么从 i*i 开始
埃氏筛内层从 i * i 起筛,是因为【0】。 本节模型:is_prime(n) 试除到 √n;sieve(n) 埃氏筛出 2..n 的素数。
97 是素数吗
运行下面这段程序: 本节模型:is_prime(n) 试除到 √n;sieve(n) 埃氏筛出 2..n 的素数。 #include <iostream> #include <string> #include <
筛出 20 以内的素数
运行下面这段程序: 本节模型:is_prime(n) 试除到 √n;sieve(n) 埃氏筛出 2..n 的素数。 #include <iostream> #include <string> #include <
补全:整除就不是素数
补全 is_prime:能被 i 整除就不是素数。补全后判断 97。 本节模型:is_prime(n) 试除到 √n;sieve(n) 埃氏筛出 2..n 的素数。 (本题用 g++ -std=c++17 -O0 编译。)
补全:从 i*i 起筛
补全埃氏筛内层:从 i * i 开始筛倍数。补全后输出 10 以内的素数。 本节模型:is_prime(n) 试除到 √n;sieve(n) 埃氏筛出 2..n 的素数。 (本题用 g++ -std=c++17 -O0 编译。)
补全:小于 2 的边界
补全 is_prime:小于 2 的数都不是素数。补全后判断 1。 本节模型:is_prime(n) 试除到 √n;sieve(n) 埃氏筛出 2..n 的素数。 (本题用 g++ -std=c++17 -O0 编译。)
1e7 个 bool 占多少内存
n = 10^7 时,bool 数组大约要占【0】。
vector 为什么省内存
第 1 步:8 个「是不是素数」要存 第 2 步:bool 数组:每个占 1 字节 第 3 步:vector<bool>:每个 1 位 第 4 步:8 个数挤进 1 字节的宽度 vector<bool> 比 bool
外层循环只要走到哪
埃氏筛的外层循环 i 只需要走到【0】。
1e7 个 bool 是多少 MB
运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std; int main() {