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

据说比快速幂快,就是求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);
    } 
}
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhanghaoxian1/article/details/79274704
想对作者说点什么? 我来说一句

ACM 乘法逆元 模板

乘法逆元

nickwong_ nickwong_

2014-08-24 21:24:56

阅读数:2626

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭