线性求所有逆元的方法 [FINISHED]

问题: 给定素数$p$,计算$1,2,...,p-2,p-1$模$p$的乘法逆元.

方法: 首先1对$p$的逆元是1. 下面计算$2,...,p-2,p-1$对$p$的逆元.  对于数字$i$,假设$p=k*i+r,1<i<p,0<r<i$

那么有$k*i+r\equiv 0(mod\ p)$

两边同时乘以$i^{-1}*r^{-1}$得到:

$k*r^{-1}+i^{-1}\equiv 0(mod\ p)$

$\rightarrow i^{-1}\equiv -k*r^{-1} (mod\ p)$

$\rightarrow i^{-1}\equiv -\left \lfloor \frac{p}{i} \right \rfloor*(p\ mod\ i)^{-1} (mod\ p)$

A[1] = 1;
A[i] = -(p / i) * A[p % i] % p;

  

posted @ 2014-09-30 23:05  朝拜明天19891101  阅读(399)  评论(0编辑  收藏  举报