同余
一、同余概念
给定一个正整数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; }