#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll extend_gcd(ll a,ll b,ll &x,ll &y)
{
if(b==0)
{
x=1;
y=0;
return a;
}
ll d=extend_gcd(b,a%b,y,x);
y-=a/b*x;
return d;
}
int main()
{
ll x,y,n,m,L;
cin>>x>>y>>m>>n>>L;
ll a=n-m;
ll c=x-y;
if(a<0)
{
a=-a;
c=-c;
}
ll d=extend_gcd(a,L,x,y);
if(c%d!=0)
{
cout<<"Impossible"<<endl;
}else
{
cout<<((x*(c/d))%(L/d)+(L/d))%(L/d)<<endl;
}
return 0;
}
扩展欧几里得求 ax+by=c
最新推荐文章于 2024-07-19 15:39:46 发布