前言
卡死我了
思路
题目很简单 无非就是求 1~n的 逆元
快速幂 O(n logn ) 被卡死了 还WA了
原因是因为 a = a*a %mod 没有开longlong
然后用 线性也被卡了 T两个点
没想到,以后再也不用endl了
CODE
#include <iostream>
using namespace std;
const int N = 3e6+10;
using ll = long long;
int n,p;
ll inv[N];
void solve()
{
cin>>n>>p;
inv[1] = 1;
for(int i=2;i<=n;i++)
{
inv[i] =(ll)(p-p/i) * inv[p%i]%p;
}
for(int i=1;i<=n;i++)
cout<<inv[i]<<'\n';
}
int main()
{
ios::sync_with_stdio(false);
solve();
return 0;
}
/**失败的qmi求逆元
inline ll qmi(int a,int b)
{
// a%=p;
ll res = 1;
while(b>0)
{
if(b&1)
res = (ll) res*a%p;
a = a*(ll)a%p;
b>>=1;
}
return res;
}
inline ll inv(int x)
{
return qmi(x,p-2);
}
**/