加法为什么要先各自取模

(a + b) % p 常写成先各取模再相加取模,主要原因是【0】。 本节模型:madd / mmul / msub 模意义下加乘减(先取模防溢出、减法 +p 防负),fact_mod(n, p) 边乘边取模求 n!。

开始练习 →

乘法取模的性质

(a * b) % p 等于【0】。 本节模型:madd / mmul / msub 模意义下加乘减(先取模防溢出、减法 +p 防负),fact_mod(n, p) 边乘边取模求 n!。

开始练习 →

减法取模为什么要 +p

第 1 步:在 0..6 这一圈里,从 3 出发 第 2 步:3 - 5 = -2:掉出这一圈了 第 3 步:C++ 里 -2 % 7 仍然是 -2 第 4 步:先 +7 再取模:落回 5 0 1 2 3 4 5 6 x 模意义下的减法常写

开始练习 →

取模加法的结果

运行下面这段程序: 本节模型:madd / mmul / msub 模意义下加乘减(先取模防溢出、减法 +p 防负),fact_mod(n, p) 边乘边取模求 n!。 #include <iostream> #include

开始练习 →

补全:模加法

补全 madd:各取模再相加再取模。补全后输出 madd(10^9, 7, 10^9+7)。 本节模型:madd / mmul / msub 模意义下加乘减(先取模防溢出、减法 +p 防负),fact_mod(n, p) 边乘边取模求 n!

开始练习 →

补全:模乘法

补全 mmul:各取模再相乘再取模。补全后输出 mmul(100000, 100000, 10^9+7)。 本节模型:madd / mmul / msub 模意义下加乘减(先取模防溢出、减法 +p 防负),fact_mod(n, p) 边乘

开始练习 →

补全:模减法防负数

补全 msub:+p 再取模保证非负。补全后输出 msub(3, 5, 7)。 本节模型:madd / mmul / msub 模意义下加乘减(先取模防溢出、减法 +p 防负),fact_mod(n, p) 边乘边取模求 n!。 (本题用

开始练习 →

补全:阶乘边乘边取模

补全 fact_mod:循环里用模乘累积。补全后输出 10! mod 1000。 本节模型:madd / mmul / msub 模意义下加乘减(先取模防溢出、减法 +p 防负),fact_mod(n, p) 边乘边取模求 n!。 (本题用

开始练习 →

质因数分解是什么

第 1 步:从 360 开始,除数从 2 试起 第 2 步:能被 2 整除:除掉,记下 2 第 3 步:能被 2 整除:除掉,记下 2 第 4 步:能被 2 整除:除掉,记下 2 第 5 步:能被 3 整除:除掉,记下 3 第 6 步:能被

开始练习 →

试除分解试到哪就够

试除法分解质因数,除数试到【0】就够,剩下的若大于 1 也是一个质因数。 本节模型:factorize(n) 试除分解质因数,n_distinct(n) 数不同的质因数。

开始练习 →