您的位置:首页 > 其它

拓展欧几里得求乘法逆元(模板)

2018-02-06 21:21 197 查看
据说比快速幂快,就是求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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: