数论--费马小定理求逆元

拜拜、爱过 提交于 2019-12-09 21:41:49
int Fermat_inverse(int a,int mod)
{
    int res = 1;
    for(int i = 1;i < mod - 1;++i) res *= a;
    return res; 
}
 
//如果p为大素数,我们可以用快速幂求解,时间复杂度为:

long long fast_pow_mod(long long a,long long b,long long mod)
{
    long long res = 1;
    while(b){
        if(b & 1) res = (res * a) % mod;
        a = (a * a) % mod;
        b >>= 1;
    }
    return res;
}
long long Fermat_inverse(long long a,long long mod)
{
    return fast_pow_mod(a,mod - 2,mod); 
}  
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!