数论专题
一 同余
同余不满足同除性
所以在模P意义下的除法要用到乘法逆元(费马小定理,exgcd)
费马小定理:如果 a,p 互质,那么 a^(p-1) ≡ 1 (mod p)
例: 求 m^n%k (m,n,k均为长整型范围内自然数)
将 n 二进制分解,放在数组 r 中,r[i]=1 表示有 m^i 这一项,用递推从小到大求出 m^i%k 的值存到数组 d 中
二 扩展欧几里得(exgcd)
对于线性方程 ax+by=c ,有解的充要条件是 c%GCD(a,b)=0 (裴蜀定理)
先求出 ax+by=GCD(a,b) 的以租借 x0,y0 ,再乘 c/GCD(a,b) ,最小整数解 x=(x0*c/GCD(a,b)%b+b)%b
通解为x=x0+k∗b,y=y0+k∗a
求最大公因数:辗转相除法 gcd(a,b)=gcd(b,a%b)
最小公倍数:lcm(a,b) = a*b/gcd(a,b)
例题:洛谷P1290 (博弈论) 辗转相除法的应用
三 唯一分解定理
A=(p1^k1)*(p2^k2)*(p3^k3)*(p4^k4)....*(pn^kn) pi 均为素数
从第一个素数开始不断取模,A%2=0时,cnt[2]++ , A/=2; A%2≠0时,则A对下一个素数3不断取模,以此类推直到 A=1 为止
四 约数和公式
对于 A=(p1^k1)*(p2^k2)*(p3^k3)*(p4^k4)....*(pn^kn)
有 A 的所有因子之和为:
S=(1+p1+p1^2+p1^3+...+p1^k1)*(1+p2+p2^2+p2^3+...+p2^k2)*...*(1+pn+pn^2+pn^3+...+pn^kn)
求法:
1. 递归二分求等比数列 1+p1+p1^2+p1^3+...+p1^n