J
来源:互联网 发布:怎么电话联系淘宝卖家 编辑:程序博客网 时间:2024/06/02 14:47
J - Modular Inverse
ZOJ - 3609The modular modular multiplicative inverse of an integer a modulo m is an integer xsuch that a-1≡x (mod m)
. This is equivalent to ax≡1 (mod m)
.
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.
For each test case, output the smallest positive x. If such x doesn't exist, output "Not Exist".
33 114 125 13
4Not Exist8
References
- http://en.wikipedia.org/wiki/Modular_inverse
题目链接:https://cn.vjudge.net/contest/160971#problem/J
直接裸求逆元就好
代码:
#include <cstdio>#include <cstring>#include <iostream>using namespace std;int exgcd(int a,int b,int& x,int& y){if(b==0){x=1;y=0;return a;}int r=exgcd(b,a%b,x,y);int t=y;y=x-(a/b)*y;x=t;return r;}int main(){int t;scanf("%d",&t); while(t--){ int a,m; int x,y; scanf("%d%d",&a,&m); int res=exgcd(a,m,x,y); if(res!=1){ printf("Not Exist\n"); continue; } int ans=x; ans=ans%m; if(ans<=0) ans+=m; printf("%d\n",ans); }}
0 0