这个代码很像1到n逆元的打表过程,证明就不写了,可以理解为是进行了一个extgcd,复杂度也一样(都是辗转取模),但是看到更清楚,代码也更简便,既不需要复杂的extgcd,也不用写快速幂,值得拥有。
int inv(int x)
{
return x == 1 ? 1 : 1LL * inv(Mod % x) * (Mod - Mod / x) % Mod;
}
这个代码很像1到n逆元的打表过程,证明就不写了,可以理解为是进行了一个extgcd,复杂度也一样(都是辗转取模),但是看到更清楚,代码也更简便,既不需要复杂的extgcd,也不用写快速幂,值得拥有。
int inv(int x)
{
return x == 1 ? 1 : 1LL * inv(Mod % x) * (Mod - Mod / x) % Mod;
}