#include <bits/stdc++.h>
#define ll long long
using namespace std;
int n, p;
int inv[1000010];
int exgcd(int a, int b, int &x, int &y)//拓展欧几里得
{
if (b == 0)
{
x = 1;
y = 0;
return a;
}
int r = exgcd(b, a % b, x, y);
int t = x;
x = y;
y = t - a / b * y;
return r;
}
int ksm(int a,int b,int mod)//费马小定理
{
int ans=1;
while(b)
{
if(b&1)ans=(ans*a)%mod;
a=(a*a)%mod;
b=b>>1;
}
return ans;
}
int solve1(int a, int mod)
{
int x, y;
int d = exgcd(a, mod, x, y);
if (d == 1)
return (x % mod + mod) % mod;
return -1;
}
int solve2(int a,int mod)
{
return ksm(a,mod-2,mod);
}
void solve3(int mod)//递推求逆元
{
inv[1]=1;
for(int i=2;i<=mod-1;i++)
{
inv[i]=(mod-mod/i)*inv[mod%i]%mod;//递推关系式
cout<<inv[i]<<" ";
}
}
int main()
{
cin >> n >> p;
for (int a = 1; a <= n; a++)
{
cout << solve2(a, p) << endl;
}
return 0;
}
P3811 【模板】乘法逆元
最新推荐文章于 2024-07-09 23:20:00 发布