J

来源:互联网 发布:怎么电话联系淘宝卖家 编辑:程序博客网 时间:2024/06/02 14:47

J - Modular Inverse

 ZOJ - 3609 

The modular modular multiplicative inverse of an integer a modulo m is an integer xsuch that a-1x (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
33 114 125 13
Sample Output
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
原创粉丝点击