three lines of code
inv[1] = 1;
for (int i = 2; i<MAXN; i++)
inv [i] = inv [MOD% i] * (MOD-MOD / i)% MOD;
Just to demonstrate the feasibility:
- Just prove: inv[i]*i=1mod MOD
- 可 证: inv [MOD% i] * (MOD-MOD / i)% MOD * i = 1 mod MOD
- Let MOD = i*k+b;
- 左边 = inv [MOD% i] * (MOD% i) (MOD * i-MOD)% MOD / (MOD% i) mod MOD
- = (MOD-MOD / i) * i% MOD / (MOD% i) mod MOD
- = (MOD-k) * in% MOD / b against MOD
- = (MOD * i + (b-MOD))% MOD / b mod MOD
- = b / b% MOD mod MOD
- = 1 mod MOD
- certified