4.3 素数和最大公约数
算术基本定理:每个大于1的整数都可以唯一地写为两个或多个素数的乘积。
合数,就是大于1,但是又不是素数的整数。
如 果 n 是 一 个 合 数 , 那 么 n 必 有 一 个 素 数 因 子 小 于 等 于 n 如果n是一个合数,那么n必有一个素数因子小于等于 \sqrt{n} 如果n是一个合数,那么n必有一个素数因子小于等于n
埃拉托斯特尼筛法
比如想要知道100以内有哪些数字是素数,就从最小的素数开始,凡是能被该素数整除的,均不是素数,比如从素数2开始,4,6,8,10等,直到100为止,再来是从3开始,6,9,12等,再来是从5开始,10,15,20等,直到所有7为止。至于为什么是7,因为根据上面我们可知,100肯定有一个素数小于等于10,则该值可能为2,3,5,7中的任何一个,然后在恰面的步骤中,我们除外了所有以这些为素数因子的合数,剩下的自然就是100以内的素数了。
梅森素数
就是形如下面的素数:
2 p − 1 , 且 p 为 素 数 {2}^{p}-1,且 p 为素数 2p−1,且p为素数
与其配套的还有一个卢卡斯-莱默尔测试(Lucas-Lehmer)的测试方法,可以判定形如上面的数是否为素数。
最大公约数
d ∣ a , 且 d ∣ b , 此 时 最 大 的 d 的 值 就 是 最 大 公 约 数 , 记 为 g c d ( a , b ) d|a,且\ d|b,此时最大的 d 的值就是最大公约数,记为\ gcd(a,b) d∣a,且 d∣b,此时最大的d的值就是最大公约数,记为 gcd(a,b)
所以两个素数的最大公约数就是1。
最小公倍数
a ∣ c , 且 b ∣ c , 此 时 最 小 的 c 的 值 就 是 最 小 公 约 数 , 记 为 l c m ( a , b ) a|c,且\ b|c,此时最小的c的值就是最小公约数,记为 lcm(a,b) a∣c,且 b∣c,此时最小的c的值就是最小公约数,记为lcm(a,b)
据说可以根据上面两个定义得出下面这个结论,但是我不知道怎么证明:
a , b ∈ N + , 则 a b = g c d ( a , b ) ⋅ l c m ( a , b ) a,b \in {N}^{+},则 \\ ab=gcd(a,b) \cdot lcm(a,b) a,b∈N+,则ab=gcd(a,b)⋅lcm(a,b)
欧几里得算法:最大公约数算法
如 果 a = b q + r , a , b , q , r ∈ N , 则 g c d ( a , b ) = g c d ( b , r ) 如果\ a=bq+r,a,b,q,r \in N,则\ gcd(a,b)=gcd(b,r) 如果 a=bq+r,