扩展欧几里得-逆元 浙江2012年省赛J题 Modular Inverse
2016-07-17 16:11
309 查看
扩展欧几里得-逆元 浙江2012年省赛J题 Modular Inverse
Modular InverseTime Limit: 2000MS | Memory Limit: 65535KB | 64bit IO Format: |
Description
The modular modular multiplicative inverse of an integer a modulo m is an integer x such
that
a-1≡x (mod m). This is equivalent
to
ax≡1 (mod m).
Input
There are multiple test cases. The first line of input is an integer T ≈ 2000 indicating the number of test cases.
Each test case contains two integers 0 < a ≤ 1000 and 0 < m ≤ 1000.
Output
For each test case, output the smallest positive x. If such x doesn't exist, output "Not Exist".
Sample Input
3 3 11 4 12 5 13
Sample Output
4 Not Exist 8
Hint
无
Source
浙江2012年省赛J题
(a*x)%m=1 扩展欧几里得求ax+my=1 x>0的最小整数解
#include<iostream> #include<cstdio> using namespace std; #define ll __int64 ll x, y; ll exgcd(ll a, ll b){ if(b == 0){ x = 1; y = 0; return a; } ll d = exgcd(b, a%b); ll t = x; x = y; y = t-a/b*y; return d; } int main(){ ll a, b, T; scanf("%I64d",&T); while(T--){ scanf("%I64d%I64d",&a,&b); if(b==1){ printf("1\n"); continue; } //cout<<a<<b<<endl; //ll g = 0; ll g = exgcd(a, b); if(g == 1){ while(x < 0){ x += b; y -= a; } printf("%I64d\n",x); } else printf("Not Exist\n"); } return 0; }
相关文章推荐
- 1.m分解阶乘之和
- 2.几种递推数
- 3.欧拉函数
- 4.快速幂模m算法
- 5.扩展欧几里得&&中国剩余定理
- 6.数论_web
- Project Euler Problem 387 - Harshad Numbers - 深度优先
- 编程之美2015初赛A
- 数论题集
- 原根
- 阶与原根学习笔记
- HDU 1299 Diophantus of Alexandria
- Leftmost Digit(HDU 1060)
- Rightmost Digit(HDU 1061)
- Python-在奇数中寻找素数
- ZOJ 2674 Strange Limit 欧拉定理
- LeetCode-Palindrome Number
- 组合数求模总结
- Sicily 1047 Super Snooker
- 【数论】组合数求模