#include<bits/stdc++.h>
#define LL long long
using namespace std;
int A,B,C,k; LL x,y,gcd;
void exgcd(LL a,LL b){
if(!b){x=1,y=0,gcd=a; return;}
exgcd(b,a%b); LL x1=y,y1=x-a/b*y; x=x1,y=y1;
}
int main(){
while(1){
scanf("%d%d%d%d",&A,&B,&C,&k);
if(A==0) break;
if(A==B){printf("0\n"); continue;}
LL b=(LL)1<<k,c=B-A,a=C;
exgcd(a,b); if(c%gcd){printf("FOREVER\n"); continue;}
x *= c/gcd; x %= (b/gcd); x = (x+b/gcd) % (b/gcd); printf("%lld\n",x);
}return 0;
}
C Looooops [exgcd]
猜你喜欢
转载自blog.csdn.net/sslz_fsy/article/details/84891341
今日推荐
周排行