注意点:
- 使用exgcd求乘法逆元需额外进行(相对)较多操作,建议使用快速幂求乘法逆元.
#include<cstdio> #include<iostream> #define ll long long using namespace std; int n,p; int poww(int a,int b){ ll ans=1,tmp=a; while(b){ if(b&1){ ans*=tmp; ans%=p; } tmp=tmp*tmp; tmp%=p; b>>=1; } return ans; } int main(){ scanf("%d%d",&n,&p); for(int i=1;i<=n;i++){ ll ans=poww(i,p-2); cout<<ans<<endl; } return 0; }