扩展欧几里得求乘法逆元

原创 2016年06月02日 12:18:19

参考http://blog.csdn.net/zhjchengfeng5/article/details/7786595

#include <stdio.h>
#include <math.h>
__int64 ans_gcd(__int64 a,__int64 b,__int64 *x,__int64 *y)
{
    if (b==0)
    {
        *x=1;
        *y=0;
        return a;
    }
    __int64 ans=ans_gcd(b,a%b,x,y);
    __int64 temp=*x;
    *x=*y;
    *y=temp-a/b*(*y);
    return ans;
}
__int64 calculate(__int64 a,__int64 b)
{
    __int64 x,y,ans;
    __int64 gcd=ans_gcd(a,b,&x,&y);
    if (1%gcd!=0)//如果a与b不互质则没有乘法逆元
        return -1;
    x=x*(1/gcd);
    b=abs(b);
    ans=x%b;
    if (ans<=0)
        ans=ans+b;
    return ans;
}
int main()
{

    __int64 i,j,a,b,ans;
    int n;
    scanf("%d",&n);
    while(n--)
    {
        scanf("%I64d%I64d",&a,&b);
        ans=calculate(a,b);//求a关于b的乘法逆元
        if (ans==-1)
            printf("Not Exist\n");
        else
            printf("%I64d\n",ans);

    }
    return 0;
}




版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

扩展欧几里得、求乘法逆元及其应用、中国剩余定理(互质版和非互质版)、欧拉函数、快速判素数模板

互质版: #include #include #include using namespace std; typedef __int64 int64; int64 a[15...

扩展欧几里得(乘法逆元)

百度百科:扩展欧几里得http://baike.baidu.com/link?url=wFOWllqYIDKw1sHLTeJ-MOFHr6RLwP-3RwWroNS5xFpJq-Z3dDj2Wcpvy...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

乘法逆元 (扩展欧几里得或费马小定理)

欧拉定理(又称费马-欧拉定理):已知a和n为正整数,并且a和p互素,则a^phi(n) ≡ 1(mod n)。 证明:   设集合Z = {X1, X2, X3, .... , Xphi(...

乘法逆元(扩展欧几里得或费马小定理)

欧拉定理(又称费马-欧拉定理):已知a和n为正整数,并且a和p互素,则a^phi(n) ≡ 1(mod n)。 证明:   设集合Z = {X1, X2, X3, .... , Xphi(n)},其中...

浅谈数论(四)扩展欧几里得算法与乘法逆元

扩展欧几里德算法 基本算法:对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b 的最大公约数,必然存在整数对 x,y ,使得 gcd(a,b)=ax+by。 证明:设 a>b。   1...

Strange Way to Express Integers(扩展欧几里得+乘法逆元+中国剩余定理求解非互质的模线性方程组)

Link:http://poj.org/problem?id=2891 Strange Way to Express Integers Time L...

拓展欧几里得和乘法逆元

拓展欧几里得:求ax+by=gcd(a,b) 求ax+by=c的值,如果c%(gcd(a,b))!=0则无解,将式子转化成求ax+by=gcd(a,b);得出特解x0,y0,则通解为 x=x0+(...

(hdu 1576)A/B(扩展欧几里得/费马小定理求逆元 or 水)

Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissio...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)