设 $$ a times k + b = p,{b times inv[b]}equiv1pmod p $$ 变式,得 $$ b = p - a times k,{(p - a times k) times inv[b]}equiv1pmod p $$
拆括号,得 $$ {p times inv[b] - a times k times inv[b]}equiv1pmod p $$ 即 $$ {-a times k times inv[b]}equiv1pmod p $$ 观察 $$ a times k + b = p $$ 两边同是对 $k$ 取模,得 $$ b = p bmod k $$ 故有 $$ a = p div k $$ 代入原式,得 $$ {-(p / k) times inv[p bmod k] times k}equiv 1 pmod p $$ 即 $$ {-(p / k) times inv[p bmod k]} equiv inv[k] pmod p $$
也就是 $$ {(p-p / k) times inv[p bmod k]} equiv inv[k] pmod p $$
inlinevoidwrite( ll x ){ if( x < 0 ) putchar( '-' ), x = -x; if( x > 9 ) write( x / 10 ); putchar( x % 10 | 48 ); }
inlinevoidwln( ll x ){ write( x ); putchar( 'n' ); }
}
usingnamespace IO;
intmain(){ // freopen(".in", "r", stdin); // freopen(".out", "w", stdout); n = read(), p = read(); f[1] = 1; For ( i, 2, n ) f[i] = ( p - p / i ) * f[p % i] % p; For ( i, 1, n ) wln ( f[i] ); return0; }
近期评论