埃氏筛为什么从 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() {

开始练习 →