首页 > 代码库 > [蒟蒻修炼计划][学习笔记]数论(二)

[蒟蒻修炼计划][学习笔记]数论(二)

乘法逆元:若技术分享,则称技术分享技术分享技术分享意义下的乘法逆元.

本文介绍乘法逆元的三种求法.

扩展欧几里得求逆元

因为技术分享,所以设技术分享满足技术分享,

则可以用扩展欧几里得求关于技术分享的方程技术分享的一组解,即求出b.

inline int exgcd(int a,int b,int &x,int &y){    if(!b){        x=1;y=0;return a;    }    int ret=exgcd(b,a%b,y,x);    y-=a/b*x;return ret;}inline int inver{    r=exgcd(a,p,b,q);    if(r!=1) return -1;    return b;}

费马小定理求逆元

因为技术分享,所以技术分享,

技术分享为a在技术分享意义下的逆元.

typedef long long ll;inline ll power(ll x,ll k){    ll ret=1;    while(k){        if(k&1) ret=ret*x%p;        x=x*x%p;k>>=1;    }    return ret;}inline ll inver{    return power(a,p-2);}

线性求逆元

技术分享表示技术分享技术分享(技术分享为质数)意义下的逆元。

技术分享

证明:因为技术分享,

所以技术分享

所以技术分享

所以技术分享

所以技术分享技术分享

 技术分享

 技术分享

 技术分享

typedef long long ll;inline ll inver{    re[1]=1;    for(ll i=2,mul;i<=a;++i){        re[i]=-p/i*re[p%i]%p;        if(re[i]<0){            mul=(0-re[i])/p+1;            re[i]=(re[i]+mul*p)%p;        }    }    return re[a];}

[蒟蒻修炼计划][学习笔记]数论(二)