爆炸现场
传送门
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n, p;
int f[3000010];
int c[3000010] = {1};
int power(int a, int b, int mod) {
if (b == 0)
return 1;
if (b % 2 == 1) {
return power(a, b - 1, mod) * a % mod;
} else {
int k = power(a, b / 2, mod) % mod;
return k * k % mod;
}
}
signed main() {
cin >> n >> p;
for (int i = 1; i <= n; i++) {
c[i] = c[i - 1] * i % p;
}
f[n] = power(c[n], p - 2, p);
for (int i = n - 1; i >= 1; i--) {
f[i] = f[i + 1] * (i + 1) % p;
}
for (int i = 1; i <= n; i++) {
cout << f[i]*c[i - 1] % p << endl;
}
return 0;
}