1、ax≡1(modb) 可以转换成 ax+by = 1,那么我们要求的x就可以通过扩展欧几里得算法求出
- ll gcd(ll a, ll b, ll &x, ll &y)
- {
- if (b == 0)
- {
- x = 1;
- y = 0;
- return a;
- }
- ll d = gcd(b, a%b, y, x);//x与y的位置互换
- y = y-a/b*x;
- return d;
- }
那么那些(a,b)!=1的即为无解的
2、如何保证求出的x为最小整数解,因为x要在mod b的条件下最小,那么就将x一直减去b,找到那个刚刚好为正整数的解即可
x = (x%b+b)%b
- # include
- using namespace std;
- typedef long long ll;
- ll t, a, b;
- ll gcd(ll a, ll b, ll &x, ll &y)
- {
- if (b == 0)
- {
- x = 1;
- y = 0;
- return a;
- }
- ll d = gcd(b, a%b, y, x);//x与y的位置互换
- y = y-a/b*x;
- return d;
- }
- int main()
- {
- cin>>t;
- while (t--)
- {
- cin>>a>>b;
- ll x, y;
- ll d = gcd(a, b, x, y);
- if (d != 1)
- {
- cout<<"-1"<
- }
- else
- {
- cout<<(x%b+b)%b<
- }
-
- }
-
-
- return 0;
- }
-
相关阅读:
从头训练一个神经网络!教它学会莫奈风格作画!⛵
【u-boot】u-boot的驱动模型分析
Hugging Face 开发环境 全教程
机器学习的打分方程汇总
viewerjs -v 11 动态获取图片(ajax),以及重复初始化问题。
Mac配置iTerm2、Git等
零售创新:社交媒体如何改变跨境电商游戏规则?
面试求职-经典面试问题
fastapi 与 vue结合,进行前后端不分离的方式部署,返回dist文件
C++性能分析工具gperftools安装教程与使用案例分析
-
原文地址:https://blog.csdn.net/m0_60531106/article/details/127695371