线性求乘法逆元,保证模数为质数
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#define int long long
using namespace std;
const int maxn=3e6+10;
int read(){
int x=0,f=1;char ch=getchar();
while(ch<'0' || ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0' && ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
int inv[maxn],n,p;
signed main(){
n=read();p=read();
inv[1]=1;
for(int i=2;i<=n;i++)
inv[i]=(p-(p/i)*inv[p%i]%p);
for(int i=1;i<=n;i++) printf("%lld\n",inv[i]);
return 0;
}