欧几里得算法
求最大公约数
int gcd(int a,int b)
{
return b?gcd(b,a%b):a;
}
bezout定理
对于任意整数 a,b 存在一对整数 x , y,满足
ax+by=gcd(a,b)
扩展欧几里得算法
同时求出bezout定理中的x,y,gcd
int exgcd(int a,int b,int &x,int &y)
{
if(b==0)
{
x=1;
y=0;
return a;
}
int d=exgcd(b,a%b,y,x);
y-=x*(a/b);
return d;
}
线性同余
先鸽了