据说比快速幂快,就是求ax+by=1的解。
代码
#include <cstdio>
#include <cmath>
#define ll long long
using namespace std;
int n;
ll p;
void exgcd(ll a,ll b,ll &x,ll &y)
{
if (!b)
{
x=1;y=0;
return;
}
exgcd(b,a%b,x,y);
ll tmp=x;
x=y;
y=tmp-a/b*y;
}
int main()
{
scanf("%d%lld",&n,&p);
for (int i=1;i<=n;i++)
{
ll x,y;
exgcd(i,p,x,y);
printf("%lld\n",(x%p+p)%p);
}
}