数论——欧拉定理和费马小定理

转载自:https://blog.csdn.net/qq_24451605/article/details/47045279

借鉴:https://blog.csdn.net/qq_24451605/article/details/47045135

说明:

  1. 质因子(或质因数)在数论里是指能整除给定正整数的质数。比如360 = 23 * 32 * 5,质因子就是2,3,5。
  2. 除了1以外,两个没有其他共同质因子的正整数称为互质。
  3. 若 gcd(a, b) == 1,a, b互质。
  4. 若 gcd(a, c) == 1,gcd(b, c) == 1,则有 gcd(a * b, c) == 1。因为相乘以后还是没有公因子。
  5. 若 gcd(a, d) == 1,a = b * c,则有 gcd(b, d) == 1,gcd(c, d) == 1。因为整体既然没有公因子,部分也必然不会有。

欧拉函数的推导和证明:

欧拉函数,φ(n),或表示为phi(n),表示1~n中与n互质的数的个数。

推导:

设 p 为 n 的一个质因子。

令 m = n / p。

当 m % p == 0 时:

φ(n) = φ(m) * p

当 m % p != 0 时:

φ(n) = φ(m) * (p - 1)

证明:

首先,由于 n = m * p,所以所有与 n 互质的数必然同时与 m 和 p 互质;其次,所有即与 m 互质,也与 p 互质的数,都与 n 互质;最后,所有不满足即与 m 互质,也与 p 互质的数必然不与 n 互质。

于是,问题就从“在 1~n 中找与 n 互质的数的个数。”变成“在 1~n 中找即与 m 互质,也与 p 互质的数的个数。”。

正式开始证明:

我们先把 1~n 中所有与 m 互质的数全部找出来。

为此我们把 1~n 划分为 p 个区间,每个区间长度为 m,第 i 个区间表示为 (m * (i - 1), m * i],左开右闭,1 <= i <= p

设第 i 个区间上第 j 个数为 xij ,则 xij = m * (i - 1) + j1 <= j <= m

要判断 xij 是否与 m 互质,只需要看 gcd(m, xij) 是否等于1。

又 gcd(m, xij) = gcd(m, j)。(欧几里德算法)

所以要求第 i 个区间上与 m 互质的数的个数只需要计算有多少个 j 满足 gcd(m, j) == 1,即 1~m 中有多少个数与 m 互质,很显然,答案是 φ(m)

而这样的区间有 p 个,所以 1~n 中所有与 m 互质的数的个数为 φ(m) * p 个。

 

若所有与 m 互质的数都与 p 互质,则必有 m % p == 0,并且为充要条件,证明如下:

必要性:

若 m % p != 0,结合 p 是素数可知 gcd(m, p)  == 1。

设 x 为 1~n 中某个与 m 和 p 互质的数。

则有 gcd(x, m)  == 1,gcd(x, p)  == 1。

∵ gcd(m, p)  == 1。

∴ gcd(x * p, m)  == 1。

∴ gcd(x * p, p) == 1 与题设矛盾。

充分性:

∵  m % p == 0。

∴ 必然存在一个整数 k ,使得 m = k * p。

设 x 为 1~n 中某个与 m 互质的数。

∴ gcd(x, m)  == 1。

∴ gcd(x, p)  == 1。

∴ 得证。

 

真正的证明开始了:

设 x 为 1~n 中某个与 m 互质数。

若 m % p == 0,“在 1~n 中找即与 m 互质,也与 p 互质的数的个数”即为“在 1~n 中找与 m 互质的数的个数”,因此 φ(n) = φ(m) * p

若 m % p != 0,需要从所有与 m 互质的数中剔除掉与 p 不互质的数,因为 p 是质数,所以需要剔除掉有因子 p 的数。1~n 中所有含因子 p 的数所构成的集合为 {i * p | 1 <= p <= m},又因为 m 与 p 互质,所以判断 m 与 i * p 是否互质只需要判断 m 与 i 是否互质即可,是不是有点眼熟,这不就是 φ(m) 吗!因此 φ(n) = φ(m) * (p - 1)

欧拉函数的推论:

对于素数 n ,φ(n) = n -1 。 
对于两个不同素数 p, q ,它们的乘积 n = p * q 满足 φ(n) = (p -1) * (q -1) 。 

 

欧拉定理:

TODO

猜你喜欢

转载自www.cnblogs.com/zaq19970105/p/10769461.html