题意

给你一个整数和素数,让你求所有整数在模意义下的乘法逆元

思路

线性求乘法逆元

假设我们已知 的逆元,我们现在要求 也就是 的逆元,

已知 等于,

那么说明

经过移项就可以得到

代码

#include <bits/stdc++.h>

int main() {
    int n, p; std::cin >> n >> p;
    std::vector<int> inv(n + 1);
    inv[1] = 1;
    for (int i = 2; i <= n; ++i) {
        inv[i] = ((-1ll * inv[p % i] * (p / i)) % p + p) % p;
    }
    for (int i = 1; i <= n; ++i) {
        // std::cout << inv[i] * i % p << ' ';
        std::cout << inv[i] << '\n';
    }
    return 0;
}