您的位置:首页 > 其它

ZOJ 3609-Modular Inverse

2017-02-26 19:58 330 查看
Modular Inverse
Time Limit: 2 Seconds      Memory Limit: 65536 KB

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

References

http://en.wikipedia.org/wiki/Modular_inverse
Author: WU, Zejun
Contest: The 9th Zhejiang Provincial Collegiate Programming Contest

题意:求一个最小的正整数x,使a乘以x对m的取余等于1对m的取余

#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
#include <vector>
#include <set>
#include <stack>
#include <map>
#include <climits>

using namespace std;

int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int m,a;
scanf("%d %d",&a,&m);
if(m==1)
{
printf("1\n");
continue;
}
int i=1;
for(;i<=m;i++)
{
if((a*i)%m==1)
{
printf("%d\n",i);
break;
}
}
if(i>m) printf("Not Exist\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: