ZOJ 3609 Modular Inverse
2014-03-08 20:15
337 查看
点我看题目
题意 : 这个题是求逆元的,怎么说呢,题目看着很别扭。。。。就是给你a和m,让你求一个最小的x满足
思路 :这个题反正数据不是很大,枚举就行了,因为维基百科中说的,两个数必须是互质的,所以判断一下,还有这个题特别逗的是m是1的时候x肯定也是1,我觉得任何一个数取余1都应该是0,可是这里显然不是这样的。这个题还可以用扩展的欧几里德算法,也可以做。
View Code
题意 : 这个题是求逆元的,怎么说呢,题目看着很别扭。。。。就是给你a和m,让你求一个最小的x满足
a-1≡x (mod m).或者
ax≡1 (mod m).通俗点说呢,就是找一个最小的x,他满足的条件的是a*x取余m等于1.
思路 :这个题反正数据不是很大,枚举就行了,因为维基百科中说的,两个数必须是互质的,所以判断一下,还有这个题特别逗的是m是1的时候x肯定也是1,我觉得任何一个数取余1都应该是0,可是这里显然不是这样的。这个题还可以用扩展的欧几里德算法,也可以做。
#include <stdio.h> #include <math.h> #include <iostream> #include <string.h> using namespace std ; int gcd(int a,int b) { return (b>0)?gcd(b,a%b):a; } int main() { int T ; scanf("%d",&T); while(T--) { int a,m ; scanf("%d %d",&a,&m) ; if(gcd(a,m) != 1) { printf("Not Exist\n") ; continue ; } int flag ; for(int i = 1 ; i <= m ; i++) { if((a*i-1)%m == 0)//这里是因为当m为1的时候如果直接用(a*i)%m==1的话有误了。 { flag = i ; break; } } printf("%d\n",flag) ; } return 0 ; }
View Code
相关文章推荐
- ZOJ 3609 Modular Inverse (FLOYD判圈算法)
- ZOJ 3609 Modular Inverse(扩展欧几里德)
- ZOJ 3609 Modular Inverse
- zoj 3609 Modular Inverse
- ZOJ - 3609 Modular Inverse (扩展欧几里德求乘法逆元)
- zoj 3609 Modular Inverse 求最小逆元 裸的的扩展欧几里得
- ZOJ 3609 Modular Inverse 扩展欧几里得
- Modular Inverse [ZOJ 3609]
- ZOJ 3609 Modular Inverse(模拟)
- ZOJ 3609 Modular Inverse(扩展欧几里得求逆元)
- ZOJ 3609 Modular Inverse
- ZOJ-3609 Modular Inverse
- ZOJ 3609 Modular Inverse
- ZOJ 3609 Modular Inverse(暴力)
- ZOJ-3609 Modular Inverse
- 【逆元】ZOJ 3609 Modular Inverse
- ZOJ 3609 Modular Inverse(扩展欧几里德)
- zoj 3609 ( Modular Inverse)
- ZOJ 3609 Modular Inverse(求最小乘法逆元)
- ZOJ 3609 Modular Inverse