目录
本篇,将a*b记录为ab
初等数论
初等数论研究数的规律,尤其是整数性质的数学分支,以算术方法为主要研究方法
主要内容有整数整除理论、同余理论、连分数理论和某些特殊不定方程
基础数理及符号概述
lcm 最小公倍数 【】表示
gcd 最大公约数 ()表示
gcd 辗转相除
exgcd 求解线性不定方程ax+by=gcd(a,b)
inline void exgcd(int a,int b,int &g,int &x,int &y) {
if(b==0) x=1,y=0,g=a;
else {
exgcd(b,a%b,g,y,x);
y-=x*(a/b); } }
逆元
对于正整数a,若存在s使as=1(mod m) 需满足(a,m)=1
费马小定理
若 p 是质数,则对于任意整数 a 有 a^p=a (mod p)
威尔逊定理
若 p 是质数,则有 (p−1)!=−1 (mod p)
inv[1]=1;
for(ri i=2; i<=p; ++i) inv[i]=(p-p/i)*inv[p%i]%p;
欧拉函数
for(ri i=2; i<=n; ++i) {
if(!vis[i]) p[++tot]=i,phi[i]=i-1;
for(ri j=1; i*p[j]<=n; ++j) {
vis[i*p[j]]=1;
if(i%p[j]==0) {
phi[i*p[j]]=phi[i]*p[j];
break; }
phi[i*p[j]]=phi[i]*phi[p[j]]; } }
Lucas定理
inline ll lucas(ll a,ll b) {
if(b==0) return 1;
return C(a%p,b%p)*lucas(a/p,b/p)%p; }
整除
传递
a|b,b|c,则a|c
a|b,a|c与a|(bx+cy)等价
同乘
a|b,则am|bm
推导
ax+by=1,a|n,b|n,则ab|n
b=qd+c,d|b与d|c等价
for(ri i=2; i<=n; ++i) {
if(!vis[i]) p[++tot]=i;
for(ri j=1; i*p[j]<=n; ++j) {
vis[i*p[j]]=1;
if(i%p[j]==0) break; } }
同余
化简
(a+b) mod c=(a mod c+b mod c) mod c
(a-b) mod c=(a mod c-b mod c+c) mod c
(ab) mod c=((a mod c)(b mod c)) mod c
(a^b) mod c=(a mod c)^b mod c
没有除法化简,类似上法化简可能会使得原本为整数的商变为小数
缩放性
a mod b=c,d!=0,则(ad) mod (bd)=cd
a mod b=c,d!=0,则(a/d) mod (b/d)=c/d
算法
中国剩余定理(即孔子问题)
快速乘/龟速乘
扩展中国剩余定理
gcd、exgcd
证明方法
元素组成
原理模拟