算法 {同余,取模}

同余/取模

性质

如果说A/x是合法的, 那么 A/x == A/(x%M) (%M);
. 比如当M是质数, 则A/x = A * (x^(M-2))x^? = (x%M)^?;

@DELI;

對於取模的問題 比如X = Y (%M), 有2個技巧:
1: 把他變成等式, 即X = Y + k*M(k是任意整數);
2: 考慮質因數分解, 即考慮M的質因數分解 與k*M的質因數分解 的關係;

@DELI;

两侧同除
If a ≡ b ( % M ) a \equiv b (\% M) ab(%M) and c ∣ a , c ∣ b c | a, c | b ca,cb, then a c ≡ b c ( % M ) \frac{a}{c} \equiv \frac{b}{c} (\% M) cacb(%M) maybe wrong (e.g., 10 ≡ 5 ( % 5 ) 10 \equiv 5 (\% 5) 105(%5) but 2 ≢ 1 ( % 5 ) 2 \not \equiv 1 (\% 5) 21(%5));
Let a = r + k 1 ∗ M , b = r + k 2 ∗ M , c ∈ [ 0 , M ) a = r + k1 * M, b = r + k2 * M, c \in [0, M) a=r+k1M,b=r+k2M,c[0,M), then c ∣ r , r ∣ ( k 1 ∗ M ) , r ∣ ( k 2 ∗ M ) c | r, r | (k1 * M), r | (k2 * M) cr,r(k1M),r(k2M), we need reserve M M M due to ( % M ) (\% M) (%M) therefore G C D ( r , M ) GCD(r, M) GCD(r,M) should be 1 1 1 (i.e., r ∣ k 1 , r ∣ k 2 r |k1, r | k2 rk1,rk2);
. e.g., 30 ≡ 6 ( % 8 ) 30 \equiv 6 (\% 8) 306(%8), and let divisor be 3 3 3, G C D ( 3 , 8 ) = 1 GCD(3, 8) = 1 GCD(3,8)=1, then ( 30 / 3 ) = 10 ≡ 2 = ( 6 / 3 ) (30/3)=10 \equiv 2 = (6/3) (30/3)=102=(6/3);
Therefore, a c ≡ b c ( % M )    ⟹    c,M are coprime \displaystyle{ \frac{a}{c} \equiv \frac{b}{c} (\% M) \implies \text{c,M are coprime} } cacb(%M)c,M are coprime

@Delimiter

整数分式的分解

Suppose a , b , c a,b,c a,b,c are integers and the formula a ∗ b c \frac{a*b}{c} cab is a integer (or in other words, the division here must be Integer-Division, i.e., a b \frac{a}{b} ba always implies b ∣ a b | a ba)

Then a ∗ b c ≠ a ∗ b c \frac{a * b}{c} \neq a * \frac{b}{c} cab=acb (e.g., 2 ∗ 3 6 ≠ 2 ∗ 3 6 \frac{2*3}{6} \neq 2 * \frac{3}{6} 623=263 due to 6 ∣ 3 6 | 3 6∣3 is wrong)

The correct mean is, let g = G C D ( b , c ) g = GCD(b,c) g=GCD(b,c) and c = c 1 ∗ g c = c_1 * g c=c1g, then a ∗ b c = a c 1 ∗ b g \frac{a*b}{c} = \frac{a}{c_1} * \frac{b}{g} cab=c1agb;

@Delimiter

将同余式操作转换为等式
a ≡ b ( % M ) ⇔ a = b + k 1 ∗ M a \equiv b (\% M) \quad \Leftrightarrow \quad a = b + k_1 *M ab(%M)a=b+k1M where k 1 k_1 k1 is a certain integer;

@Delimiter

将等式转换为同余式

a = b + k ∗ M     ∀ k ∈ Z ⇔ a ≡ b ( % M ) a = b + k * M \ \ \ \forall k \in Z\quad \Leftrightarrow \quad a \equiv b (\% M) a=b+kM   kZab(%M);

@DELI;

#将取模操作转化为同余操作#
a % M = b → a ≡ b ( % M ) a \% M = b \quad \to \quad a \equiv b (\% M) a%M=bab(%M)

错误

不要一遇到取模问题, 就想着肯定需要取模模板;
比如说 涉及到比较大小值, 那么肯定是不能取模的, 即可能人家本来Int64/ Int128就可以存储, 题目只是要求你对最终答案进行取模而已, 那就不需要使用取模模板了;
@LINK: (https://editor.csdn.net/md/?articleId=138498219)-(@LOC_0);

@DELI;

比如Mod=1e9, 給定a,b = 1e18, 求(a*b) % Mod;
如果你寫成a%Mod * b % Mod, 這是錯誤的, 因為當Mod * b時 他是爆LL的; 而我們知道Mod*Mod是不會爆LL的;
正確做法是: a%Mod * (b % Mod) % Mod, 即讓2個Mod去乘;

@DELI;

雖然C | (A*B)C|A, 但是 並推不出來 C|B; 比如2 | (8*1), 2|8 但是顯然2|1是錯誤的;
即 虽然A*B == (A%C * B%C) %C这是正确的 取模可以进行乘法拆分, 但是A*B %C == 0 你並不能說 此時A%C, B%C都是0;

@DELI;

指數操作 滿足取模
錯誤;
比如在Mod=4的情況下, 2^4 = 0, 但是2^(4 (% 4)) = 1; 即 a b ≠ a b % M   ( % M ) a^b \neq a^{b \% M} \ (\% M) ab=ab%M (%M);

应用

@LINK: https://editor.csdn.net/md/?not_checkout=1&articleId=137383741
思维题, 很复杂…

@DELI;

@LINK: https://editor.csdn.net/md/?not_checkout=1&articleId=134675304;

筆記


## 加一的特殊性
F a c t ( x ) = { y ∣ y ∣ x , y > 1 } Fact(x) = \{ y | \quad y | x, y \gt 1\} Fact(x)={yyx,y>1}

∀ F a c t ( x ) ( ¬ (   F a c t ( x ) ∣ ( x + 1 ) ) ) \forall{ Fact( x)}(\neg( \ Fact(x) |(x + 1))) Fact(x)(¬( Fact(x)(x+1)))

(Fact(x)无法整除: x+1)


# 取模


## 累加的周期性
对于任意的(A, M), 序列: A, 2 * A, 3 * A, … (即k * A) 在%M下, 是周期性的

注意, 是k * A, 不是 A k A^k Ak

因为: k * A = (k + M) * A (% M), 所以, M肯定是周期;

如果(A, M)互质, 则 根据: 取模集合性质, 周期是M
M = 8, A = 3 {3, 6, 1, 4, 7, 2, 5, 0 | 3, 6, …}

否则, (A, M)不互质, 则: 周期 < M, 且周期 | M
M = 8, A = 2 {2, 4, 6, 0 | 2, 4, …}


## 取模的唯一集合
对于取模M, 虽然不同的(取模方式: 正负取模, 非负, 非正), 最终得到的数值范围不同;
比如, 一个数A % M后, 在不同取模方式下, 可能得到: 一个负数N, 可能得到一个整数P

但是, N与P, 他俩在%M意义下, 仍然是相等的!

因此, 在数学证明角度, 你可以假设所有数, 都是[0, M)范围内的;
即所有的Z整数域, 都是在[0, M)范围, 这会使得问题分析更简单;
这一点与选择哪种取模方式无关, 因为都可以对应到[0, M)范围的;


## 取模下的四则运算
在取模M下, 其唯一集合为[0, M);

给定一个A, 如果A不在唯一集合, 则令A1为A在唯一集合里的对应元素;

给定一个B, 此时要进行(A R B)二元操作, R为四则运算;
则令B1为B在唯一集合里的对应元素;

则原操作 (A R B) % M, 可以等价为: (A1 R B1) % M
R是任意的四则元素; 这样, 可以防止数据溢出; 因为A, B都很大; 但是%M的唯一集合很小;

换句话说, 在取模意义下,
( 加 A) 等价于: ( 加 A%M)
( 减 A) 等价于: ( 减 A%M)
( 乘 A) 等价于: ( 乘 A%M)
( 除 A) 等价于: ( 乘 A的逆元) 等价于: ( 乘 A%M的逆元) … 因为A与(A + k * M)的逆元相同

即在取模意义下的任何数任何操作, 你都可以先对他进行%M操作;
即, 你面临的所有数, 都是唯一集合[0, M)里面的数


## 除法的不可约性

在%M取模意义下, (以下的=等号, 都代表同余), 令R为二元运算, (A,B,C)为唯一集合[0, M)里面数

若R为(加, 减), 则:
1, 若A = B, 则A R C = B R C; … 证明: A = B意味着: (A,B)同时对应着[0, M)里的同一个元素
2, 若A != B, 则 A R C != B R C … 证明: [0, M)集合, 每个元素 R C后, 依然是[0, M)集合;(相当于钟表, 旋转后依然是相同的)
… 根据抽屉原理, A != B, 则旋转后 依然不同;
3, 若A R C = B R C, 则: A = B … 证明: 根据2定理(p -> q), 则(非q -> 非p)
4, 若A R C != B R C, 则: A != B … 证明: 根据1定理(p -> q), 则(非q -> 非p)

但是, 如果R是(乘, 除), 因为除法为(乘逆元), 所以只考虑乘法:
1, 若A = B, 则A R C = B R C, … 证明: A = B意味着: (A,B)同时对应着[0, M)里的同一个元素
2, 若A != B, 则A R C != B R C 这是假的, 证明: (1 != 3)%4, 但(12 = 32 = 2)% 4
… A * C (% M) = A * C + k1 * M, B * C(% M) = B * C + k2 * M
… 如果两者相同, 则: k1 * M + (-k2 * M) = (B - A) * C; 根据裴蜀定理, 只要令: M | (B-A)*C 即可;
… 从这里也有个推理: 2_1: 若A != B 且 (C,M)互质, 则 A R C != B R C;
… … 因为(B-A)<M, (C,M)互质, 所以, (B-A)*C 不会是M的倍数, 即: M | (B-A)*C 恒不成立
3, 若A R C = B R C, 则A = B 这是假的, 根据定理2
… 但是, 根据推理2_1: (若p -> q, 则非q -> 非p), 得到推理3_1: 若A R C = B R C, 则A = B 或 (C,M)互质
… 根据推理3_2, 可以得出: 若A R C = B R C 且 (C,M)互质, 则: A = B
4, 若A R C != B R C, 则A != B … 证明: 根据定理1


所以但遇到: C = C*A (% M), 不可以认为: (1 = A); 因为: (C,M)可能不互质;
根据推理3_2: 如果此时有(C, M)互质, 则可以得到(1 = A)


## 取模集合 * 互质数

在取模M下, [0, M);
给定一个P, 且(P, M)互质, 则[0, M) * P后的集合, 依然等于[0, M)

根据除法不可约去性, 对于(A, B) in [0, M): 若A != B, 且(C, M)互质, 则有: A * C != B * C

比如: M = 10: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

  • 3后: [0, 3, 6, 9, 2, 5, 8, 1, 4, 7]
  • 7后: [0, 7, 4, 1, 8, 5, 2, 9, 6, 3]

但如果(P,M)不互质, 则不成立;

  • 2 后: [0, 2, 4, 6, 8, 0, 2, 4, 6, 8]

## 互质集合 * 互质数
上面介绍了: (取模集合) * P 后的集合, 等于(取模集合), (P, M)互质

对于(互质集合), N为M的欧拉函数值, 即{m1, m2, …, mN} 与 M互质;
对于(P, M)互质, 则: (欧拉集合) * P 后的集合, 在%M下, 依然等于(欧拉集合)

证明:
(P, M)互质, N = phi(M), 欧拉集合S1 = {m1, m2, …, mN}
(欧拉集合 * P)的集合S2: {m1 * P, m2 * P, …, mn * P}
证明这两个集合同余;

1, 因为(mi, M)互质, (P, M)互质, 所以(mi * P, M)互质; 即S2的元素,

## 取模集合与互质集合的累积和
对于取模M集合[0, M), 这些元素, 我们把0去掉, 即[1, M)这些元素,
他们的乘积, 与M, 不一定是互质的;
比如: M=4 : [1 * 2 = 2], 与4不互质;
即(1 * 2 * 3 * … (M-1)) 与 M, 不一定互质;

但是对于M的互质集合(即欧拉函数), 令N为phi(M), [a1, a2, a3, …, aN] 这些元素 与 M互质, 这是欧拉函数的定义;
他们的乘积: a1 * a2 * … * aN 与 M 是互质的

证明: ai里, 都不含有任何M的质因子; 所以ai的乘积里, 也不含任何M的质因子;


## 元素范围

在%M意义下(如果是正负取模), 所有的数, 都是(-M, …, M)范围内的!

比如, 在M = 5意义下, 给定一个数A = 10, B = 5; 求(A/B)的值
… (A / B = 2), 所以, 其答案为2
这是错误的!
在%M意义下, 不会有一个数是(A = 10), 这已经不在(%M)范围内了

因此所有数, 都要进行取模操作!
即(A % M = 0, B % M = 0), 即(A = 0, B = 0), 进行(A / B)


## 取模还原

令C = A % B, 我们此时得到了C; (不管%取模: 是正负取模 还是非负取模 还是非正取模)

因为, C = A + k * B, 那么, k是可以求出来的

k = (C - A) / B, 是可以整除的

即A, 向(左/右)跳了 k步(步长B), 到达了C


## 同余转换

对于取模下的方程: A = B ( % M)
可以转换为: 非取模方程(即严格意义下相等): A + k * M = B

其中k可以求出, 等于: (B - A) / M
也就是, 从A点 往(左/右) 跳了k步(步长M), 到达了B


## 取模公式
a % b = a − ⌊ a b ⌋ ∗ b a \% b= a - {\lfloor \frac{a}{b} \rfloor}*b a%b=abab

这个式子, 并不简单是一种等价关系; 而是说: %这个取模符号, 就是这样定义的!
即a%b, 本身没有意义; 他的定义, 是依据后面公式得到的


把gcd单独提出来, 会得到:

a % b = ( k 1 % k 2 ) ∗ g = ( k 1 − ⌊ k 1 k 2 ⌋ ∗ k 2 ) ∗ g 其中 , g = G C D ( a , b ) , k 1 与 k 2 互质 a \% b = (k1 \% k2) * g = ( k1 - {\lfloor \frac{k1}{k2} \rfloor} * k2) * g \quad 其中, g = GCD(a, b), k1与k2互质 a%b=(k1%k2)g=(k1k2k1k2)g其中,g=GCD(a,b),k1k2互质

从此可知, A % B的结果, 一定是(A,B的GCD)的倍数;


## 计算机取模
计算机对于a%b的操作, 可以认为是调用了下面的函数:

Ll_ Mod( Ll_ _a, Ll_ _b){
    return _a - Divide( _a, _b) * _b;
}

因此, 关键是研究: a / b a/b a/b除法是如何进行的


首先, 介绍: 向上, 向下, 向0取整; 这里的(向), 是基于整数数轴的, (即负数 -> 0 -> 正数)
向上, 就是向右侧, 即偏向大的数

(5.5: 向下和向0取整, 会得到5; 而向上取整会得到6)
(-5.5: 向下取整得到-6; 而向上和向0取整会得到-5)

… 向0取整, 是C++除法采用的; 他有个性质, 对于A和-A, 他们的取整结果的(绝对值), 是相同的; 满足对称性


由于除法有3种, 因此取模也对应的有3种;

对于a%b, 假设b是4, 则3种取模的结果 都会落在区间: [-3, -2, -1, 0, 1, 2, 3]里面;

根据上面的(取模公式), 配合不同的取整, 会得到下面性质:
… 1, 正负取模(即向0取整)时: 如果a是负数, 则落在[-3, -2, -1, 0]区间; 否则, 则落在[0, 1, 2, 3]区间
… 2, 非负取模(即向下取整)时: 不管a是正数负数, 都会落在[0, 1, 2, 3]区间
… 3, 非正取模(即向上取整)时: 不管a是正数负数, 都会落在[-3, -2, -1, 0]区间


### 模板代码

//> 向0整除
Ll_ Divide( Ll_ _a, Ll_ _b){
    return _a / _b; 
}

//> 向下取整
Ll_ Divide( Ll_ _a, Ll_ _b){
    if( ( _a >= 0 && _b >= 0)
            || ( _a <= 0 && _b <= 0)){
        return _a / _b;
    }
    if( _a % _b == 0){
        return _a / _b;
    }
    return _a / _b - 1;
}

//> 向上取整
Ll_ Divide( Ll_ _a, Ll_ _b){
    if( ( _a >= 0 && _b >= 0)
            || ( _a <= 0 && _b <= 0)){
        if( _a % _b == 0){
            return _a / _b;
        }
        return _a / _b + 1;
    }
    return _a / _b;
}

我们过去, 向上取整代码会写成: (a + b - 1) / b, 其实他是错误的!
对于正数是正确的;
… 但是比如: 5 / -2, 向上取整后应该是-2; 但是, 上面代码会得到-1, 是完全错误的; (而且-5/-2会得到4…)


对于下取整, 如果除数是2, 则使用>>右移也可以


## 取模与整除的对应
我们知道取模有3种 (向0取模有正有负, 非负取模, 非正取模), 对应3种整除规则

在进行数学公式递推时, 经常会用到: A % B = A - (A/B) * B

如果全局都是使用的(非负取模), 那么这个公式中, (整除) 就必须是 (向下整除)!

不能是: 使用(非负取模), 而到了整除操作, 却使用C++默认的(向0整除), 这是错的, 因为两者是对不上的;


# 质数


## 质数与合数
对于自然数, 除了0 1外, 不是质数 就是合数.
0 1, 既不是质数, 也不是合数


## 质数个数
1到x之间, 有多少个质数呢? 大约有: x/ln(x)个

换句话说, 每ln(x)个, 就有一个质数;
即, 在[1, x]范围内, 任选一个数, 是质数的概率是: 1/ln(x)


## 质数特殊表示
质数: 2, 3, 5, 7, 11, 13, 17, 19, …

除了2 3外, 所有质数, 都可以表示为; 6n + 1 或 6n - 1的形式.
比如, 11 = 26 - 1, 19 = 36 + 1;

但反之不然, 4*6 + 1 = 25不是质数.

证明: (因为6n - 1也可以写成: 6n + 5, 即证明: 质数一定可以表示为: 6n + 1, 6n + 5的形式)
6n + 0, 6n + 2, 6n + 4, 都是偶数, 不是质数.
6n + 3 = 3( 2n + 1) 是3的倍数, 不是质数.


# 互质
AB互质, 当且仅当: AB的公约数只有1

因此可以得到, 1与任何正数, 都互质


## 取模下的乘积互质

若(A, M)互质, (B, M)互质, 则(A * B, M)也互质 … 注意, 不是说(A, B)互质

反证: 若(A * B, M)存在公约数(质因子)g, 则A * B = k * g; 得到: A或B里, 一定存在g质因子; 矛盾;


所以可以推出: 若干个ai (且(ai, M)互质), 的乘积, 与M互质; (注意, 不是说(ai, aj)互质)

比如, 欧拉集合的累积和, 与M互质;
比如M = 10, 欧拉集合为{1, 3, 7, 9}; 其乘积: 1 * 3 * 7 * 9 = 9 (% M), 其结果9 与 M 互质;


## 0和1的互质
对于1, 他与(任何 >= 1)的数x, 都互质
… 因为显然不存在一个质因子p, 使得: k1 * p = 1

对于0, 如果严格按照定义出发, (0, 1)互质, 但(0, 任何!=0的数)都不互质;
所以, phi( 1)一般定义为1; (即欧拉函数)


## 互质数的和与差
A和B互质, 令C = | A - B |, (A,B,C)三个数互质

令A > B, 反证:
如果(A,C)不互质, 令G为(A,C)的GCD, 则B = A - C = G的倍数, 得到(A,B)不互质; 矛盾
如果(B,C)不互质, 令G为(B,C)的GCD, 则A = B + C = G的倍数, 得到(A,B)不互质; 矛盾


若令C = A + B, 则(A,B,C)三者也互质;

证明也可以用反证法;


## 取模数

(A,B)互质, 令C = A + k * B, 则: C与B一定互质, 但C与A 不一定互质

我们从上面定理知道, 如果(A,B)互质, 则(A,B,|A-B|)三者互质;
这里是+k, 上面定理是k = -1的情况; 可以说, 这个定理是上面的一般化;


证明: (C与B互质)
反证法, 若(B,C)不互质, 则存在公约数G, 可以反推出, A一定也含有G, 与(A,B)互质矛盾;

证明: (C与A不一定互质)
因为C = A + k * B, 对于任意A的>1的约数f, 只要令k等于f的倍数, 此时: C = f的倍数, 而A也是f的倍数;
比如, (A=15, B=2互质), 但是(令k=A=15, 则: C = A + k * B = 15 + 15 * 2 = 45), 得到(A,C)不互质;

但不是绝对的, 取决于k, 可能(A,C)互质, 可能不互质


引理: 可以发现, C的性质, 就是A%B的公式; 因此, (A%B)与B互质, 而与A不一定互质;
比如: (A = 15, B = 4互质), 但是(C = A % B = 15 - 3 * 4 = 3)与A不互质, 但与B互质;

这也是为什么在求GCD时, 是从(A, B)转换为(A%B, B), 而不是(A%B, A)


# 公约数
任意两数AB, 满足x | A 且 x | B, 则x为AB的公约数;

满足这样的x很多, 所以AB的公约数 是一个集合; 其最大的元素, 为最大公约数GCD


## 性质


### (公约数集合) 等于 (GCD的约数集合)

令G为A与B的GCD, 则AB的任意一个公约数g, 一定是G的约数;

比如: (24 与 36)的公约数集合是: {12, 6, 4, 3, 2, 1}, 其GCD(12)的约数集合也是: {12, 6, 4, 3, 2, 1}

等价于证明:  g与G的GCD, 一定等于g

反证 (即存在g不是G的约数, 即g与G的GCD 不等于g):
令h为(g与G的GCD),  则g = kg * h, G = kG * h; (且h != g 即kg > 1, kg与kG互质)

因为g | A, g | B, G | A, G | B;   根据公倍数的概念:  A是g与G的公倍数; B是g与G的公倍数; (简称为: A和B 是  g和G 的公倍数)

比如, a 是 b和c 的公倍数,  则会有:  b和c的LCM 是 a 的约数; [证明参见: 公倍数集合](#0)

则此时, (g和G的LCM) 是 A的约数;  (g和G的LCM) 是 B的约数;

则:  (g和G的LCM) 是 A和B的 公约数;

而g和G的LCM = kg * kG * h = kg * G,  因为kg > 1, 所以, g和G的LCM > G

因为, G是最大的公约数,  而现在这个(g和G的LCM) 也是公约数, 还比G大; 矛盾

因此, 任意两数(A,B)的公约数集合, 只与其GCD有关, 与AB无关;

比如, A = k1 * G, B = k2 * G, 只要(k1,k2)互质, 则(A,B)的GCD等于G, 则其公约数集合都相同; 不管(k1,k2)等于多少


## 性质


### 约数与最小公倍数
如果a | A, 则(a,A)的LCM 等于 A


### 约数集合的最小公倍数
A的约数集合中的 任意两个元素ab, 其LCM一定属于该集合里

比如12的约数集合{12, 6, 4, 3, 2, 1}, 4 6的LCM为12; 2 3的LCM为6

证明: 因为a | A, b | A; 即A是ab的公倍数;
因为LCM一定是公倍数的约数
因此, 任意两数的LCM 一定是 A的约数;


# 公倍数

任意AB, 满足A | C 且 B | C, 则C为AB的公倍数;
正式的, 满足: C = x * A = y * B, 且(x,y)均为整数, 则C就是(A,B)的一个公倍数

最简单的例子, A * B这个数, 就是(A,B)的一个公倍数

比如, (4, 6)其公倍数有: (C = 0: 则(x,y) = (0,0)) (C = 12: 则(x,y) = (3, 2)) (C = -12: 则(x,y) = (-3, -2)) …
实际上, 其公倍数集合是: k * LCM, 这里的最小公倍数LCM等于12

满足这样C很多, 因此AB的公倍数 是一个集合(无限集合); 其中, 最小的(正数) 为最小公倍数LCM(least common multiple)

比如(5, 10), 其LCM为10; (4, 6), 其LCM为12


LCM算法

令A = ka * G, B = kb * G (G为AB的GCD, ka与kb互质)
则, LCM = ka * kb * G

其等价于: ka * kb * G * G / G = a * b / G


## 性质


### 公倍数集合
a | A 且 b | A, 则有: ab的LCM | A
即A是ab的公倍数, 证明: 公倍数 一定是 LCM的倍数;

证明: 令a = ka * g, b = kb * g (g为ab的GCD, ka与kb互质)

则, A = k1 * a = k1 * ka * g;
A = k2 * b = k2 * kb * g;

合并后, A = k * ka * kb * g = k * LCM

即: 公倍数 一定是 LCM的倍数; LCM一定是公倍数的约数;
即: AB的公倍数集合 是形如: { k * LCM | k为任意整数}, 比如{ …, -LCM, 0, LCM, …}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值