亿点数论

常见数学符号

  1. xyx|y, xx 整除于 y,xxyy 的因数
  2. xyx\bot y, xxyy 互质
  3. \sum 求和
  4. \prod 求乘积,如: i=1n\prod^n_{i=1}表示 n!n!
  5. Δ\Delta 表示变化或差异

快速幂

aba^b
如果 bb 是偶数:ab=(a2)b/2a^b=(a^2)^{b/2}
如果 bb 是奇数:ab=a×(a2)b/2a^b=a \times (a^2)^{b/2}
例如:x20=(x2)10=(x4)5=x4(x8)2=x4×(x16)1x^{20} = (x^2)^{10} = (x^4) ^ 5 = x^4 * (x^8)^2 = x ^ 4 \times (x ^ {16}) ^ 1

1
2
3
4
5
6
7
long long x ,p ,m, ans=1;
cin >> x >> p >> m;
while(p != 0) {
if(p % 2 == 1) ans = ans * x % m;
x = x * x % m;
p = p / 2;
}

同余以及扩展欧几里得算法

什么是同余

aa,bb 除以 mm 的余数相等,则称 aabb 对于模 mm 同余 aa 同余 bbmm
记作 ab(mod m)a\equiv b(mod~m)

同余的性质

  1. 对称性: ab(mod m)a\equiv b(mod~m) -> ba(mod m)b\equiv a(mod~m)
  2. 传递性 ab(mod m)a\equiv b(mod~m), bc(mod m)b\equiv c(mod~m) -> ac(mod m)a\equiv c(mod~m)
  3. 相加性 ab(mod m)a\equiv b(mod~m) -> a+cb+c(mod m)a+c\equiv b+c(mod~m)
  4. 同乘 (如上)
  5. 同幂 (如上)

裴蜀定理

裴蜀定理:设 a,b不全都为0 ,存在整数 x,y ,使得 a×x+b×y=gcd(a,b)a \times x + b \times y = gcd(a, b)

总结 : 对于 $a \times x + b \times y = gcd(a, b) $ 中其中一组解
1. 如果 b=0b = 0x=1,y=0x = 1, y = 0
2. 其他情况 通过 x=yx = y , y=xa/byy = x -a /b * y 递归求解

x1,y1x1, y1ax+by=dax+by = d 的一组解,则通解为
x=x1+k×b÷dx = x1 + k \times b \div d
y=y1k×a÷dy = y1 - k \times a \div d

扩欧

1
2
3
4
5
6
7
8
9
10
int exgcd(int a, int b, int &x,int & y){
if(b == 0) {
x = 1,y = 0;
return 0;
}
int d = exgcd(b, a % b,x ,y);
int t = x;
x = y, y = t - a / b * y;
return d;
}