现在的位置: 首页 > 综合 > 正文

O(N) 求1~N的逆元

2017年10月16日 ⁄ 综合 ⁄ 共 227字 ⁄ 字号 评论关闭

因为逆元是完全积性函数,这个可以用线筛来做,但是我们有一个更短更快的方法

对于一个数a,有x,y满足ax+y=mod   且0<y<a
就有  ax+y = 0   (% mod)
        ax = -y  (% mod)
      a^-1 = -x*y^-1
所以a的逆元等于-x*y的逆元, 在这里,我们可以取mod/a为x,mod%a为y,这样就可以了

rev[1]=1; for (int i=2;i<=n;++i) rev[i]=1LL*(mod-(mod/i))*rev[mod%i]%mod;

抱歉!评论已关闭.