贝祖数

贝祖数

公式:ax+by=m(a,b,mZ) 求x,y

贝祖定理

例:2x+y=3 有整数解
因为 2 和 1 的最大公约数是 1
而3是1的整数倍
4x+2y=5 无整数解
因为 4 和 2 的最大公约数是 2
而5不是2的整数倍

贝祖数

例:104x+40y=8

8=2416(1) =24[4016(1)](1) =40(1)+24(2) =40(1)+[10440(2)] =104(2)+40(5) 

所以x = 2, y = 5

#include <iostream>

using namespace std;

int exgcd(int a, int b, int &x, int &y)
{
    if(!b)
    {
        x = 1, y = 0;
        return a;
    }
    
    int d = exgcd(b, a%b, y, x);
    
    y -= a / b * x;
    return d;
}
int main()
{
    int n;
    cin >> n;
    while (n -- )
    {
        int a,b,x,y;
        scanf("%d%d", &a, &b);
        exgcd(a, b, x, y);
        cout << x << ' ' << y << endl;
    }
}
posted @   wqzgg  阅读(124)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示