g c d ( a , b ) = m a x [ k ] i f ( k ∣ a , k ∣ b ) gcd(a,b) = max[k] \ \ \ if(k|a,k|b) gcd(a,b)=max[k] if(k∣a,k∣b)
a和b的最大公因子是同时整除a和b的最大整数,其中g(0,0) = 0
如果两个数a.b互素,当且仅当它们只有一个正整数公因子为1,也就是说若g(a, b) = 1,那么ab互素(互质).
有:
[ ( a m o d n ) + − ∗ / ( b m o d n ) ] = ( a + − ∗ / b ) m o d n [(a \ mod \ n) \ +-*/ \ (b \ mod \ n)] = (a\ +-*/ \ b)\ mod \ n [(a mod n) +−∗/ (b mod n)]=(a +−∗/ b) mod n
例子
1 1 7 m o d 13 11^7 \ mod\ 13 117 mod 13
1 1 2 = 121 ≡ 4 ( m o d 13 ) 11^2 = 121 \equiv 4(mod\ 13) 112=121≡4(mod 13)
1 1 4 = ( 1 1 2 ) 2 = 4 2 ≡ 3 ( m o d 13 ) 11^4 = (11^2)^2 = 4^2 \equiv 3(mod 13) 114=(112)2=42≡3(mod13)
1 1 7 = 11 ∗ 1 1 2 ∗ 1 1 4 ≡ 11 ∗ 4 ∗ 3 ≡ 123 ≡ 2 ( m o d 13 ) 11^7 = 11*11^2*11^4 \equiv 11*4*3 \equiv 123 \equiv 2(mod\ 13) 117=11∗112∗114≡11∗4∗3≡123≡2(mod 13)
300 = 2 2 ∗ 3 1 ∗ 5 2 300 = 2^2*3^1*5^2 300=22∗31∗52
18 = 2 1 ∗ 3 2 18 = 2^1*3^2 18=21∗32
g c d ( 18 , 300 ) = 6 = 2 1 ∗ 3 1 ∗ 5 0 gcd(18,300) = 6 = 2^1*3^1*5^0 gcd(18,300)=6=21∗31∗50
∴ i f k = g c d ( a , b ) \therefore if\ k = gcd(a,b) ∴if k=gcd(a,b)
t h e n k p = m i n ( a p , b p ) , ∀ p ∈ P then\ k_p = min(a_p,b_p) \ , \ \forall \ p \in P then kp=min(ap,bp) , ∀ p∈P
假设我们有一个关于 x 和 y 的线性方程
a x + b y = d ax+by=d ax+by=d
现在要求判断这个方程是否存在整数解。
裴蜀定理告诉了我们,ax+by=d 存在整数解当且仅当 gcd(a,b)∣d。例如说 3x+6y=2 就不存在整数解,3x+6y=3 就存在整数解 x=1,y=0。
显然 gcd(a,b)∣(ax+by),如果存在整数解的话必然有 gcd(a,b)∣d,也就是说,如果 gcd(a,b)∤d 这个线性方程就肯定不存在整数解。
若p是素数,a是正整数且不能被p整除,则
a p − 1 ≡ 1 ( m o d p ) a^{p-1} \equiv 1(mod \ p) ap−1≡1(mod p)
第一种形式需要ap互质,第二种不需要
a p ≡ a m o d p a^p \equiv a \ mod \ p ap≡a mod p
ϕ ( x ) \phi(x) ϕ(x)
即为欧拉函数的符号,表示小于x且与x互质的数有多少个。
显然对于素数有
ϕ ( n ) = n − 1 \phi(n) = n-1 ϕ(n)=n−1
假设有两个素数p,q。
∀ n = p q \forall n=pq ∀n=pq
ϕ ( n ) = ϕ ( p q ) = ϕ ( p ) ∗ ϕ ( q ) = ( p − 1 ) ( q − 1 ) \phi(n) = \phi(pq) = \phi(p)*\phi(q) = (p-1)(q-1) ϕ(n)=ϕ(pq)=ϕ(p)∗ϕ(q)=(p−1)(q−1)
欧拉定理说明,对于任意互素的a和n,有
a ϕ ( n ) ≡ 1 ( m o d n ) a^{\phi(n)} \equiv 1(mod \ n) aϕ(n)≡1(mod n)
而第二种表现形式不需要a、n互素
a ϕ ( n ) + 1 ≡ a ( m o d n ) a^{\phi(n)+1} \equiv a(mod \ n) aϕ(n)+1≡a(mod n)
如果m1,m2,···,m3互质,由中国剩余定理可得
{ x ≡ a 1 ( m o d m 1 ) x ≡ a 2 ( m o d m 2 ) x ≡ a 3 ( m o d m 3 ) ⋅ ⋅ ⋅ x ≡ a k ( m o d m k ) \begin{cases} x \equiv a_1(mod \ m_1)\\ x \equiv a_2(mod \ m_2)\\ x \equiv a_3(mod \ m_3)\\ \ \ \ \ \ \ \ ·\\ \ \ \ \ \ \ \ ·\\ \ \ \ \ \ \ \ ·\\ x \equiv a_k(mod \ m_k) \end{cases} ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧x≡a1(mod m1)x≡a2(mod m2)x≡a3(mod m3) ⋅ ⋅ ⋅x≡ak(mod mk)
↓ \downarrow ↓
x ≡ x 0 ( m o d l c m ( m 1 , m 2 , ⋅ ⋅ ⋅ , m n ) ) x \equiv x_0(mod \ lcm(m_1,m_2,···,m_n)) x≡x0(mod lcm(m1,m2,⋅⋅⋅,mn))
证明如下
先考虑只有两个方程,并且模数互质的时候
{ x ≡ a 1 ( m o d p 1 ) x ≡ a 2 ( m o d p 2 ) \begin{cases} x \equiv a_1(mod \ p_1) \\ x \equiv a_2(mod \ p_2) \\ \end{cases} {x≡a1(mod p1)x≡a2(mod p2) ↓ \downarrow ↓ { x = a 1 + k 1 p 1 x = a 2 + k 2 p 2 \begin{cases} x=a_1+k_1p_1 \\ x=a_2+k_2p_2 \\ \end{cases} {x=a1+k1p1x=a2+k2p2 ↓ \downarrow ↓ a 1 + k 1 ∗ p 1 = a 2 + k 2 ∗ p 2 a_1 + k_1*p_1 =a_2+k_2*p_2 a1+k1∗p1=a2+k2∗p2 ∴ x = a 1 + k 1 p 1 \therefore x=a_1+k_1p_1 ∴x=a1+k1p1 = a 1 + p 1 p 2 t + k 1 ′ =a_1+p_1p_2t+k_1' =a1+p1p2t+k1′ = x 0 + p 1 p 2 t =x_0+p_1p_2t =x0+p1p2t ↓ \downarrow ↓ x ≡ x 0 ( m o d p 1 p 2 ) x \equiv x_0(mod \ p_1p_2) x≡x0(mod p1p2)
一直迭代后,则有:
x ≡ x 0 ( m o d p 1 p 2 p 3 p 4 ⋅ ⋅ ⋅ ⋅ p n ) x \equiv x_0(mod \ p_1p_2p_3p_4····p_n) x≡x0(mod p1p2p3p4⋅⋅⋅⋅pn)
这个方程是否存在整数解呢?根据裴蜀定理以及 gcd(p1,p2)=1 我们可以很容易就判断得到这个方程一定存在整数解,这样接着就可以直接利用扩展欧几里得算法来求出一组整数解,我们记为 (k′1,k′2)。之后随便利用一个解回代到 (2) 中,就可以得到了一个满足 (1) 的解,我们记为 x0。所以有:
{ k 1 = p 2 t + k 1 ′ k 2 = p 1 t + k 2 ′ \begin{cases} k_1 = p_2t + k_1' \\ k_2 = p_1t + k_2' \end{cases} {k1=p2t+k1′k2=p1t+k2′
在《孙子算经》中有这样一个问题:“今有物不知其数,三三数之剩二(除以3余2),五五数之剩三(除以5余3),七七数之剩二(除以7余2),问物几何?”这个问题称为“孙子问题”,该问题的一般解法国际上称为“中国剩余定理”。
∴ \therefore ∴ { x ≡ 2 ( m o d 3 ) x ≡ 3 ( m o d 5 ) x ≡ 2 ( m o d 7 ) \begin{cases} x \equiv 2(mod \ 3 )\\ x \equiv 3(mod \ 5)\\ x \equiv 2(mod \ 7)\\ \end{cases} ⎩⎪⎨⎪⎧x≡2(mod 3)x≡3(mod 5)x≡2(mod 7) ↓ \downarrow ↓
{ x ≡ 8 ( m o d 15 ) x ≡ 2 ( m o d 7 ) \begin{cases} x \equiv 8(mod \ 15) \\ x \equiv 2(mod \ 7) \end{cases} {x≡8(mod 15)x≡2(mod 7) ↓ \downarrow ↓ x ≡ 23 ( m o d 105 ) x \equiv 23(mod \ 105) x≡23(mod 105)