数学知识下

线性同余方程

#include <bits/stdc++.h>
using namespace std;
int n;
typedef long long LL;
LL a,b,m;
LL x,y;


LL gcd(LL a,LL b){
    return b==0?a:gcd(b,a%b);
}

// ax = b mod m
// ax + my = b

LL exgcd(LL a,LL b,LL& x,LL &y){
    if(b==0){
        x=1;y=0;
        return a;
    }
    LL r = exgcd(b,a%b,y,x);
    y-=a/b*x;
    return r;
}


int main(){
    cin>>n;
    for(int i =1;i<=n;i++){
        cin>>a>>b>>m;
        if(b%gcd(a,m)==0){
            LL r = exgcd(a,m,x,y);
            cout<<(b/r*x+m)%m<<endl;
        }else puts("impossible");
    }
    return 0;
}

中国剩余定理:

...互质的话





...



如果不互质
就要使用扩展欧几里得

全部评论

相关推荐

昨天 11:16
湖南大学 Web前端
我看到好多人都在说0offer好焦虑,结果一看是投了百度快手字节啥的。好像大家都是只想通过校招进大厂,对小公司是不考虑的吗😂可是能进大厂的难道不是只有少部分人吗,真心发问
梦想是成为七海千秋:沉默的大多数吧,喜欢晒的都是能引起共鸣的大厂,找小厂的人,别人也不认识你这个小厂,就自己偷偷找了实际上大多数人哪有什么机会能找到大厂
点赞 评论 收藏
分享
ResourceUtilization:四六级不愧是大学最有用的证之一
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务