同余的性质
欧拉定理
若正整数a,n互质,则aφ(n)≡1(mod n),其中φ(n)为欧拉函数。
费马小定理
若p是质数,则对于任意整数a,有ap≡a(mod p)。
//当a,p互质时,要满足ap-1≡1(mod p),就是欧拉定理的一种特殊情况
a,p不互质时,a是p的倍数,显然成立
欧拉定理的推论
若正整数a,n互质,则对于任意正整数b,有ab≡ab%φ(n)(mod n).
当a,n不一定互质且b>φ(n)时,有ab≡ab%φ(n)+φ(n)(mod n)
扩展欧几里得算法
求出gcd(a,b)与使得ax+by=gcd(a,b)成立的一组特解
int exgcd(int a,int b,int &x,int &y) { if(!b){x=1;y=0;return a;} int d=exgcd(b,a%b,y,x); y-=a/b*x;return d; }对于更加一般的方程ax+by=c 它有解当且仅当d|c.
我们可以先求出ax+by=d的一组特解x0,y0,都乘以c/d就得到原方程的一组特解
通解就表示为x=(c/d)x0+kb/d,y=(c/d)y0-ka/d k为整数
乘法逆元
线性同余方程
给定整数a,b,m,求一个整数x满足a*x≡b(mod m),或这给出无解。
其实就是求a*x-b是m的倍数 设它是m的-y倍,则a*x+m*y=b
然后就是扩欧求 没啦
中国剩余定理
设m1,m2,m3,...,mn是两两互质的整数,m=∏mi,Mi=m/mi,ti是线性同余方程Miti≡1(mod mi)的一个解。
对于任意n个整数a1,a2,...,an,方程组x≡ai(mod mi)有整数解,解为x=ΣaiMiti。