洛谷 P3811 乘法逆元 题解

题面

 

利用暴力快速幂O(nlogn)会TLE掉;

所以对于求1~n的所有逆元要用递推公式;

 

#include <bits/stdc++.h>
using namespace std;
long long inv[10000010];
int main ()
{
    int n,p;
    cin>>n>>p;
    inv[1]=1;
    cout<<inv[1]<<endl;
    for(register int i=2;i<=n;i++){
        inv[i]=(p-p/i)*inv[p%i]%p;
        printf("%lld\n",inv[i]);
    }
}

 

posted @ 2019-07-31 10:28  神之右大臣  阅读(98)  评论(0编辑  收藏  举报