ZOJ 3609 Modular Inverse(乘法逆元)

原创 2016年05月31日 01:06:22

题目链接:
ZOJ 3609 Modular Inverse
题意:
求ax = 1 (mod n),给出a,n的最小正数解x,如果不存在输出Not Exist.
分析:
用扩展欧几里德求乘法逆元。注意是最小正数解!而不是非负数解!

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
#include <climits>
#include <cmath>
#include <ctime>
#include <cassert>
#define IOS ios_base::sync_with_stdio(0); cin.tie(0);
using namespace std;
typedef long long ll;

ll ex_gcd(ll a, ll b, ll& x, ll& y)
{
    if(b == 0) {
        x = 1, y = 0;
        return a;
    }
    ll d = ex_gcd(b, a % b, y, x);
    y -= a / b * x;
    return d;
}

int main()
{
    int T;
    ll a, b;
    scanf("%d", &T);
    while(T--){
        scanf("%lld%lld", &a, &b);
        ll x, y;
        ll d = ex_gcd(a, b, x, y);
        if(d != 1) printf("Not Exist\n");
        else{ 
            x = (x % b + b) % b;
            if(x == 0) x = b;
            printf("%lld\n", x);
        }
    }
    return 0;
}
版权声明:缥缈玉京人,想语然、京兆眉妩。

相关文章推荐

ZOJ(Modular Inverse)——最小乘法逆元

搞了一个下午的数论,终于看懂了。。。 题意: 就是给你a和m,然后让你求a关于m的最小乘法逆元。 思路: 这是一道模板题,直接用欧几里得算法来求最小乘法逆元就好了。 推理: ax=1(mo...

ZOJ 3609 Modular Inverse (FLOYD判圈算法)

Modular Inverse Time Limit: 2 Seconds      Memory Limit: 65536 KB The modular modular multipli...

ZOJ 3609 Modular Inverse【同余问题】

Modular Inverse Time Limit: 2 Seconds      Memory Limit: 65536 KB The modular modular multiplicat...

Modular Multiplicative Inverse(模乘逆元)

计算模乘逆元原理上有四种方法: 1.暴力算法 2.扩展欧几里得算法 3.费尔马小定理 4.欧拉定理 模乘逆元定义:满足 ab≡1(mod m),称b为a模乘逆元。以下是有关概念以及四种方法及程序。 文...

ZOJ 3841 Cards (组合数+乘法逆元)

题目地址:ZOJ 3841 这题很快就写出来了,但是我犯了一个很**的错误,忘了把0的阶乘设为1。。卡了整整两个小时。。。写完题解就去面壁思过。。不要拦我。。 这题...

Delphi求乘法逆元

  • 2012-03-08 11:03
  • 192KB
  • 下载

SCUT重组赛第一场_B_Cal on a tree_乘法逆元、dfs

今天没什么好写的啊,来实验室玩的有点多,明天少玩?
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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