有序列表
1. LCM(a, b) = a / GCD(a, b) × b;//先除后乘 防止数字过大爆炸
2. 欧几里得cpp
void gcd(int a,int b)
{
return b==0?a:gcd(b,a%b);
}
3. 扩展欧几里得
void exgcd(LL a, LL b, LL &x, LL &y, LL &d){
if (!b) {d = a, x = 1, y = 0;}
else{
exgcd(b, a % b, y, x, d);
y -= x * (a / b);
}
}
4. 线性模方程的解
void mod_line(int a, int b, int n)
{
//ax = b (mod n)
int d, x, y, x0, i;
exgcd(a, n, x, y,d);
if(b%d == 0)
{
x0 = x * (b/d) % n + n;//x0为任意一个解
for(i = 0;i < d;i ++)
cout << (x0 + i*n/d) % n <<endl;//方程由d个解
}
}