ex_gcd求不定方程的最小正整数解
Posted juruo-zzt
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ex_gcd求不定方程的最小正整数解相关的知识,希望对你有一定的参考价值。
#include<bits/stdc++.h>
using namespace std;
int gcd(int a,int b) {return b?gcd(b,a%b):a;}
int exgcd(int &x,int &y,int a,int b)
{
if(!b)
{
x=1;
y=0;
return a;
}
int r=exgcd(x,y,b,a%b);
int t=x;
x=y;
y=t-a/b*y;
return r;
}
bool cal(int &x,int &y,int a,int b,int c)
{
int d=exgcd(x,y,a,b);
if(c%d) return false;
int k=c/d;
x*=k;
y*=k;
return true;
}
int main()
{
int x,y,a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(cal(x,y,a,b,c))
{
printf("%d %d
",x,y);//输出任意解
int tx=x;
x%=b;
if(x<=0) x+=(int)abs(b*1.0);
int k=(tx-x)/b;
y += k*a;
printf("%d %d
",x,y);//输出最小正整数解
}
else puts("No answer!");//无解
return 0;
}
以上是关于ex_gcd求不定方程的最小正整数解的主要内容,如果未能解决你的问题,请参考以下文章