一、同余概念
給定一個正整數m,如果兩個整數a和b滿足a-b能夠被m整除,即(a-b)/m得到一個整數,那么就稱整數a與b對模m同余,記作a≡b(mod m)。對模m同余是整數的一個等價關系。
二、同余性質
1.自反性
a≡a(mod m)
2.對稱性
a≡b(mod m),則 b≡a(mod m)
3.傳遞性
a≡b(mod m) ,b≡c(mod m)
則a≡c(mod m)
4.同加性
a≡b(mod m),則a+c≡b+c(mod m)
5.同乘性
1.a≡b(mod m),則a*c≡b*c(mod m)
2.a≡b(mod m),c≡d(mod m)
a*c≡b*d(mod m)
6.同冪性
a≡b(mod m)
則power(a,n)≡power(b,n)≡(mod m)
7.乘法模推論
a*b mod k =
(a mod k)*(b mod k) mod k
8.結合模推論
若 a mod p=x,a mod q=x
p,q互質,則 a mod p*q=x
證明
- a=p*s+x,a=q*t+x => s*p=t*q;
- 則一定有整數r,使得s=r*q (一個數相等,他們的質因子一定相等,又因為p,q互質,所以s含有q的所有質數積含有q,但又要等式相等,所以還要乘以r=t/p)
- 所以 a=r*p*q+x, 得出a mod p*q=x
9.沒有同除性
三、同余應用
快速冪
int a,b,c,ans=1; int quick_pow() { a=read(),b=read(),c=read(); for(;b;b>>=1,a=a*a%c) if(b&1) ans=ans*a%c; printf("%d",ans); return 0; }