2019-04-13 15:22发布 生成海报
int extgcd(int a, int b, int& x, int& y) { int d = a; if(b != 0){ d = extgcd(b, a % b, y, x); y -= (a / b) * x; }else { x = 1; y = 0; } return d; } int mod_inverse(int a, int m) { int x, y; extgcd(a, m, x, y); return (m + x % m) % m; }
利用快速幂求出逆元。
对于任意整数n,可以将它分解n=pk11∗pk22∗pk33...pkmm,其中pi为质数。 其中ϕ(n)=ϕ(p1k1)∗ϕ(pk22)...ϕ(pkmm) 最后转化为ϕ(n)=n∗∏(pi−1)/pi