#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int ext_gcd(int a, int b,int &x,int &y)
{
int t, ret;
if(!b)
{
x= 1, y=0;
return a;
}
ret =ext_gcd(b,a%b,x,y);
t=x,x=y,y=t-a/b*y;
return ret;
}
int main()
{
int A,B,C,k;
while(scanf("%d %d %d %d",&A, &B, &C, &k))
{
if(!A||!B||!C||!k)
break;
int a=C;
int b=B-A;
int n=1<<k;
int x,y,d;
d=ext_gcd(a,n,x,y);
if((b%d))
{
printf("FOREVER\n");
}
else
{
x=(x*(b/d)%n+n)%n;
printf("%d\n",x);
}
}
system("pause");
return 0;
}
poj 2115 同余方程
最新推荐文章于 2022-02-25 19:38:17 发布