51Nod 1256 乘法逆元 Label:exgcd

1256 乘法逆元

基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题

给出2个数M和N(M < N),且M与N互质,找出一个数K满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的。

Input

输入2个数M, N中间用空格分隔(1 <= M < N <= 10^9)

Output

输出一个数K,满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的。

Input示例

2 3

Output示例

2

代码

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 #define ll long long
 6 using namespace std;
 7 ll x,y;
 8 ll exgcd(ll a,ll b){
 9     if(b==0){
10         x=1;y=0;return a;
11     }
12     int g=exgcd(b,a%b);
13     int t=x;
14     x=y;
15     y=t-a/b*y;
16     return g;
17 }
18
19 int main(){
20     ll a,b,c;
21     scanf("%lld%lld",&a,&b);
22     int g=exgcd(a,b);
23     printf("%lld\n",(x%b+b)%b);
24     return 0;
25 }

无话可说,QAQ

时间: 2024-10-16 05:07:57

51Nod 1256 乘法逆元 Label:exgcd的相关文章

51nod 1256 乘法逆元 拓展欧几里得求逆元

1256 乘法逆元 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出2个数M和N(M < N),且M与N互质,找出一个数K满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的. Input 输入2个数M, N中间用空格分隔(1 <= M < N <= 10^9) Output 输出一个数K,满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的. Input示例

51Nod 1256 乘法逆元

题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1256 给出2个数M和N(M < N),且M与N互质,找出一个数K满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的. Input 输入2个数M, N中间用空格分隔(1 <= M < N <= 10^9) Output 输出一个数K,满足0 < K < N且K * M % N = 1,如果

51Nod 1256 乘法逆元(扩展欧几里得)

1 #include <iostream> 2 #include <algorithm> 3 4 using namespace std; 5 typedef long long LL; 6 7 //给予二整数 a 与 b, 必存在有整数 x 与 y 使得ax + by = gcd(a,b) 8 LL extgcd(LL a, LL b, LL &x, LL &y){ 9 LL d = a; 10 if (b != 0){ 11 d = extgcd(b, a%b,

51nod 125乘法逆元 (扩展欧几里得)

给出2个数M和N(M < N),且M与N互质,找出一个数K满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的. Input 输入2个数M, N中间用空格分隔(1 <= M < N <= 10^9) Output 输出一个数K,满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的. Input示例 2 3 Output示例 2 思路: 对于正整数和,如果有,那么把这个同余方程中的最小正整数解叫做

51nod1256乘法逆元

1256 乘法逆元 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注给出2个数M和N(M < N),且M与N互质,找出一个数K满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的.Input输入2个数M, N中间用空格分隔(1 <= M < N <= 10^9)OutPut输出一个数K,满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的.Input示例2

数论入门2——gcd,lcm,exGCD,欧拉定理,乘法逆元,(ex)CRT,(ex)BSGS,(ex)Lucas,原根,Miller-Rabin,Pollard-Rho

数论入门2 另一种类型的数论... GCD,LCM 定义\(gcd(a,b)\)为a和b的最大公约数,\(lcm(a,b)\)为a和b的最小公倍数,则有: 将a和b分解质因数为\(a=p1^{a1}p2^{a2}p3^{a3}...pn^{an},b=p1^{b1}p2^{b2}p3^{b3}...pn^{bn}\),那么\(gcd(a,b)=\prod_{i=1}^{n}pi^{min(ai,bi)},lcm(a,b)=\prod_{i=1}^{n}pi^{max(ai,bi)}\)(0和任何

关于逆元的概念、用途和可行性的思考(附51nod 1013 和 51nod 1256)

[逆元的概念] 逆元和单位元这个概念在群中的解释是:  逆元是指数学领域群G中任意一个元素a,都在G中有唯一的逆元a',具有性质a×a'=a'×a=e,其中e为该群的单位元. 群的概念是:  如果独异点(幺半群)中每一个元素都有逆元,那么这个独异点(幺半群)叫做群. 独异点(幺半群):  有单位元的半群. 半群:  可结合的代数系统.即 ,有 . 代数系统:我的理解是代数系统包含一个数的集合A和至少一个运算规则,所有的运算都是封闭的,不会产生不在A集合中的数. 我们知道的实数集合R和加减乘除等一

乘法逆元

定义:当(a,p)=1时,存在ax≡1(mod p),则x叫作a在模p意义下的乘法逆元. 求法: 1.当p为质数时,由费马小定理,得ap-1≡1(mod p),即(a·ap-2)≡1(mod p),则a在模p意义下的乘法逆元是ap-2,直接用快速幂可求得. 2.当p不为质数时,用扩展欧几里得算法求a的逆元. 代码: 1 int exgcd(int a,int b,int &x, int &y) 2 { 3 int d=a; 4 if(b!=0){ 5 d=exgcd(b,a%b,y,x);

HDU1576 A/B(乘法逆元)

这题大概是,整数模9973乘法群?然后存在乘法逆元. 于是题目要求$A \div B \pmod {9973} $其实就相当于求$A \times B^{-1}\pmod {9973} $. 只要求出B的逆元就OK了. 计算模n下的乘法逆元可以用用扩展欧几里得算法求解,即解下面的线性同余方程: $$ Ax \equiv 1 \pmod {n} $$ 1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 #de