方法一:费马小定理
方法二:线性递推
代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 3e6 + 10;
ll inv[N];
int main()
{
ll p, n;
inv[1] = 1;
cin >> n >> p;
cout << 1 << endl;
for (int i = 2; i <= n; i++)
{
inv[i] = (p - p / i) * inv[p % i] % p;
printf("%lld\n", inv[i]);
}
return 0;
}