扩展欧几里得的简单应用~~
#include<iostream>
#include<string.h>
#include<string>
using namespace std;
long long x1,y1,d;
void gcd(long long a,long long b)
{
if(!b) {x1=1;y1=0;d=a;}
else
{
gcd(b,a%b);
long long temp=x1;
x1=y1;
y1=temp-(long long )a/b*x1;
}
}
int main()
{
long long x,y,m,n,L;
while(cin>>x>>y>>m>>n>>L)
{
long long a=n-m;
long long c=x-y;
long long b=L;
gcd(a,b);
long long r=b/d;
if(c%d==0) printf("%lld\n",(c/d*x1%r+r)%r);
else printf("Impossible\n");
}return 0;
}
本文通过一个具体的程序示例介绍了扩展欧几里得算法的应用,该算法用于求解线性同余方程组,特别适用于解决整数线性方程组问题。文章中的代码实现了扩展欧几里得算法,并演示了如何使用该算法来解决特定类型的问题。
5万+

被折叠的 条评论
为什么被折叠?



