<span>逆元的三种求法</span>

详情请参考inv[orz]https://www.cnblogs.com/zjp-shadow/p/7773566.html

拓展欧几里得(当 a与p互质,但 p 不是质数的时候也可以使用。)

void Exgcd(ll a, ll b, ll &x, ll &y) {
    if (!b) x = 1, y = 0;
    else Exgcd(b, a % b, y, x), y -= a / b * x;
}
int main() {
    ll x, y;
    Exgcd (a, p, x, y);
    x = (x % p + p) % p;//????
    printf ("%d\n", x); //x是a在mod p下的逆元
}

费马小定理(欧拉定理的特殊情况):若p为素数,a为正整数,且a、p互质。则有a^(p−1)≡1(mod p)。

ll fpm(ll x, ll power, ll mod) {//快速幂
    x %= mod;
    ll ans = 1;
    for (; power; power >>= 1, (x *= x) %= mod)
        if(power & 1) (ans *= x) %= mod;
    return ans;
}
int main() {
    ll x = fpm(a, p - 2, p);
}

用于求一连串数字对于一个mod p的逆元。

 inv[1]=1;
	for(int i=1;i<=maxn;i++) inv[i] =(p-p/i)*inv[p%i]%p;
全部评论

相关推荐

07-11 15:12
门头沟学院 Java
别人在上班,我就在工位上看看视频啥的,这正常吗?
程序员小白条:实习就是摸鱼,只是公司指标,把你进来了,可能那时候客户很多,但等你进来的时候,已经是淡季了,根本没多少需求,或者说根本不适合实习生去完成,因此你就每天干坐着就行,可能1,2个月都没需求
实习生的蛐蛐区
点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-09 12:30
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务