#include <iostream>
#include<cstdio>
using namespace std;
typedef long long ll;
ll ex_gcd(ll a,ll b,ll& x,ll& y)
{
if(b==0)
{
x=1,y=0;
return a;
}
ll r,tx,ty;
r=ex_gcd(b,a%b,tx,ty);
x=ty;
y=tx-a/b*ty;
return r;
}
int main()
{
ll x,y,a,b,c,k,d;
while(cin>>a>>b>>c>>k&&(a||b||c||k))
{
b=b-a;
k=(ll)1<<k; //注意1前面加long long
d=ex_gcd(c,k,x,y);
if(b%d)
cout<<"FOREVER"<<endl;
else
{
k/=d;
x=x*b/d;
x=(x%k+k)%k;
cout<<x<<endl;
}
}
return 0;
}
POJ 2115 一次同余方程
最新推荐文章于 2022-02-03 23:23:34 发布