1、实现求乘法逆元的函数,给定a和m,求a模m的乘法逆元,无解时请给出无解提示,并且只返回正整数。进而给出求解同余方程(ax = b mod m)的函数,即给定a,b,m,输出满足方程的x,无解给出无解提示。
#include<iostream>
using namespace std;
int egcd(int a, int b)//求乘法逆元
{
int max;
int m_a = a, m_b = b;//记录a,b原本的值
if (a > b)//判断a,b大小
{
max = a;
}
else
{
max = b;
int temp;
temp = b;
b = a;
a = temp;
}
int r1 = 1, r2 = 0;
int s1 = 0, s2 = 1;
int temp1, temp2, temp3;
while (a % b != 0)
{
int c = a % b;
int d = a / b;
temp1 = a;
a = b;
b = temp1 % a;
temp2 = s1;
s1 = s2;
s2 = temp2 - d * s1;
temp3 = r1;
r1 = r2;
r2 = temp3 - d * r1;
}
if (max == m_a)
{
if (s2 > 0)
return s2;
else
return m_b + s2;
}
if (max == m_b)
{
if (r2 > 0)
return r2;
else
return m_a
1、实现求乘法逆元的函数,给定a和m,求a模m的乘法逆元,无解时请给出无解提示,并且只返回正整数。进而给出求解同余方程(ax = b mod m)的函数,即给定a,b,m,输出满足方程的x,无解给出无解提示。#include<iostream>using namespace std;int egcd(int a, int b)//求乘法逆元{ int max; int m_a = a, m_b = b;//记录a,b原本的值 if (a > b)//判断a,b大小 {