一、整除
定义
若a%b=0,则b|a,否则b∤a
性质
1.若a|b,b|c,则a|c(传递性)
2.若a|b,则ak|bk(k≠0)
3.若a|c,a|b,那么a|rb+sc(r,s∈Z)。
4.若a|b,则-a|b,a|-b,|a| | |b|
5.若(m,a)=1,且m|ab,则m|b
6.ai|c的充要条件为[a1,a2,...,an]|c
7.对于任意整除a,b,当0<=r<b时,存在唯一的整数对q,r使得a=qb+r。此外b|a的充要条件为r=0
二、同余
定义
当a%m=b%m时,称a≡b(mod m)
同余的性质
1.当a≡b(mod m)时
a≡a(mod m)自反性
b≡a(mod m)对称性
a+c≡b+c(mod m)同加性
a*c≡b*d(mod m)[c≡d(mod m)]同乘性
a^2≡b^2(mod m)同幂性
2.当a%p=a%q=x时,若(p,q)=1,则a%pq=x
证明:a=mq+x=np+x
mq=np
∵(p,q)=1
∴m=kp
a=kpq+x
3.当d>=1,d|m时,若a≡b(mod m),则a≡b(mod d)
4.当a≡b(mod m)时,若d≠0,则da≡db(mod |d|m)
5.当ca≡cb(mod m)时,a≡b(mod m/(c,m))
证明:∵ca≡cb(mod m)
∴m|c(a,b)
∴m/(c,m)|[c/(c,m)](a,b)
∵(m/(c,m),c/(c,m))=1
∴m/(c,m)|a-b
∴a≡b(mod m/(c,m))
6.a≡b(mod mi)为a≡b(mod [m1,m2,...,mn])充要条件
7.设f(x)=an*xn+...+a0,g(x)=bn*xn+...+b0,满足ai≡bi(mod m),
若c≡d(mod m),则f(c)≡g(d)(mod m)
特别的,当x为整数时,f(x)≡g(x)(mod m)
取模
a+b取模p:(a+b)%p
a-b取模p:(a-b)%p
a*b取模p:(a*b)%p
a/b取模p:可能出现小数,所以需要找一个整数代表a/b,即找逆元
乘法逆元:inv(a)=1/a
想表示a%b时,更标准的写法应为(a%p+p)%p
三、费马小定理
定义
p为质数,p∤a时,a^(p-1)≡1(mod p)
证明
构造A={x|1<=x<p,x∈Z}
B={ax%p|1<=x<p,x∈Z}
显然,B中元素不为0,且都为1~p-1的整数
∴A=B
∵=(p-1)!,
=(p-1)!a^(p-1)%p
∴a^(p-1)%p=1
应用
有此定理得iva(a)=a^(p-2)%p
证明:a*iva(a)%p=1
∵a*a^(p-2)%p=1
∴iva(a)=a^(p-2)%p
若p|a,则iva(a)不存在。若p不为质数,则此算法不可用(一般题目给的p都是质数)
四、求逆元题目
题目描述
输入a,求a对10^9+7取模的逆元
思路
利用快速幂,求出a^(10^9+7-2)%(10^9+7)的值
AC代码
符号
(a,b)表示a与b的最大公约数
[a,b]表示a与b的最小公倍数
a%b表示a取模b
---------------------------------------------------------------------------------
本篇博客中a^n表示a的n次方