题目大意:求$$ax\equiv 1(\ \mathrm{mod}\ m)$$的最小正整数解。

  因为$ax-1|m$,故令$ax-1=-ym$,原方程就变成了$ax+my=1$。根据bezout定理此方程有解当且仅当$\gcd(a, m)=1$成立,然后解方程$ax+my=\gcd(a,m)$即可。

  先不考虑原题,若要解方程$$ax+by=\gcd(a,b)$$,要用到扩展欧几里得算法。当$b=0$时,显然$x=1,y=0$。因为$$\gcd(a,b)=\gcd(b,a\ \mathrm{mod}\ b), a\ \mathrm{mod}\ b=a-\lfloor \frac{a}{b}\rfloor b$$,所以如果知道了$$bx'+(a-\lfloor \frac{a}{b}\rfloor b)y'=\gcd(b, a\ \mathrm{mod}\ b)=\gcd(a, b)$$,将等式左面倒一倒就变成了$$ay'+b(x'-\lfloor \frac{a}{b}\rfloor y')=\gcd(a,b)$$。所以令当前的$x=y', y=x'-(a/b)*y'$便是一个解。于是在欧几里得算法的基础上加上这一句即可。

回到原题,人家要求最小正整数解,因为该同余方程$ax\equiv 1(mod m)$的通解为所有模m与x0同余的整数($ax+amk=a(x+mk)\equiv 1(\ \mathrm{mod}\ m)$依然成立),我们要将解转移使$x\in [1,m)$。故将以上解出的$x$进行(x%m+m)%m。x%=m时,$x\in (-m,m)$。再加m模m是为了处理x是负数的情况。

#include <cstdio>
#include <cstring>
using namespace std; long long Exgcd(long long a, long long b, long long &x, long long &y)
{
if (b == 0)
{
x = 1;
y = 0;
return a;
}
long long d = Exgcd(b, a%b, x, y);
long long tx = x;
x = y;
y = tx - (a / b)*y;
return d;
} long long Inv(long long a, long long m)
{
long long x, y;
Exgcd(a, m, x, y);
return (x%m + m) % m;
} int main()
{
long long a, m;
scanf("%lld%lld", &a, &m);
printf("%lld\n", Inv(a, m));
return 0;
}

  

最新文章

  1. JavaScript语言精粹(读书笔记)
  2. 用JS写了一个打字游戏,反正我是通不了关
  3. Maven No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? 问题
  4. 【bzoj2120】 数颜色
  5. 【转】Fast Entity Component System
  6. 1028 - Carl the Ant
  7. SpringMVC学习总结(三)——Controller接口详解(2)
  8. tornado 使用过程中提示‘no module name ioloop’
  9. 复制virtualenv环境到其他服务器环境配置的方法
  10. Ant学习总结5(配合Ant视频8,9)
  11. MongoDB 系列(一) C# 简易入门封装
  12. Spring Cloud 2-Config 分布式配置中心(七)
  13. 移动端无限滚动 TScroll.vue组件
  14. JS隐藏号码中间4位
  15. Python_列表初识及操作
  16. Oracle 10g收集数据库统计信息
  17. java_oop_关键字
  18. FJUT3565 最大公约数之和(容斥)题解
  19. 07机器学习实战k-means
  20. NSLog()输出函数集格式字符

热门文章

  1. js数据管理的思考
  2. 一种压缩图片的方法---Machine learning 之 K-Means
  3. Java 基本的递归写法
  4. Android常见错误整理
  5. Android上UDP组播无法接收数据的问题
  6. 【python】数组去重
  7. Combobox 下拉框赋值
  8. ASP.NE 上传文件控件
  9. git_安装与配置
  10. Package和Activity