补全:平方和别在 int 里溢出

补全:求 1² + 2² + … + 100000²。i 是 int,i * i 在 i 超过 46340 以后会溢出。补全后输出总和。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

int 的上限是多少

运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std; #include <l

开始练习 →

补全:阶乘取模换大类型

补全:求 20! mod (10^9 + 7)。r 小于 10^9 + 7,再乘上 i 就可能超过 int。补全后输出结果。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

补全:不用 __int128 的龟速乘

有的评测机不支持 __int128。补全 slow_mul:把 b 按二进制拆,只做加法和翻倍(每一步都取模),照样算出 a × b mod m。补全后输出结果。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

素数的定义

第 1 步:2 到 11,先都当作素数 第 2 步:2 没被划掉,是素数 第 3 步:划掉 2 的倍数,从 4 开始 第 4 步:3 没被划掉,是素数 第 5 步:划掉 3 的倍数,从 9 开始 第 6 步:4×4 超过 11,剩下的都是素

开始练习 →

判素数试除到哪就够

判断 n 是不是素数,试除到【0】就够。 本节模型:is_prime(n) 试除到 √n;sieve(n) 埃氏筛出 2..n 的素数。

开始练习 →

埃氏筛为什么从 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 编译。)

开始练习 →