欧几里得算法与拓展欧几里得算法(1)——数论中的beatsaber
哈罗大家好我是cht。
今天正式开死数论部分的讲解!
一、欧几里得算法的思路
众所周知,beatsaber是一个yxc巨佬喜爱的VR游戏。
(大佬:烂人你怎么又开始扯游戏了
好了好了一会大家就知道了。
1-1欧几里得算法用来解决什么东西
其实朴素欧几里得算法最大的用途就是:
求最大公因最小公倍数。
这里要先介绍一点点小东西:
a × b ( a , b ) = [ a , b ] \displaystyle \frac {a \times b} {(a, b)} = [a, b] (a,b)a×b=[a,b]
简明一点,就是:
a × b ÷ a 与 b 的 最 大 公 约 数 = a 与 b 的 最 小 公 倍 数 a \times b \div {a与b的最大公约数} = {a与b的最小公倍数} a×b÷a与b的最大公约数=a与b的最小公倍数
证明如下:
令 d = ( A , B ) ; 则 a = A d b = B d ( a , b ) = 1 可 列 出 短 除 : d ∣ A , B ⋅ ⋅ — — ⋅ ⋅ a , b ( M a r k d o w n 并 没 有 短 除 功 能 此 时 把 A 与 B 分 解 质 因 数 : A = p 1 α 1 × p 2 α 2 × p 3 α 3 × ⋯ B = q 1 β 1 × q 2 β 2 × q 3 β 3 × ⋯ d 必 然 包 含 在 其 中 一 个 因 子 里 , 不 妨 设 : d = p x α x = q y β y ∵ d = p x α x = q y β y ∴ a = A ÷ p x α x , b = B ÷ q y β y 所 以 可 以 推 出 : [ A , B ] = a × b ( a , b ) 令d = (A, B);\\ 则 \displaystyle a = \frac Ad\\ \displaystyle b = \frac Bd\\ (a, b) = 1\\ 可列出短除:\\ d|A, B\\ ··——\\ ··a, b\\ (Markdown并没有短除功能\\ 此时把A与B分解质因数:\\ A = p_1 ^ {\alpha_1} \times p_2 ^ {\alpha_2} \times p_3 ^ {\alpha_3} \times \cdots\\ B = q_1