POJ 2115
题目大意
暂无
题目解法
暂无
RTFC
#include <cstdio>
typedef long long int64;
void exgcd(int64 a, int64 b, int64 &d, int64 &x, int64 &y)
{
!b ? (x = 1, y = 0, d = a) : (exgcd(b, a % b, d, y, x), y -= x * (a / b));
}
int main()
{
int64 A, B, C;
int k;
while (scanf("%lld%lld%lld%d", &A, &B, &C, &k), A | B | C | k)
{
int64 a = C, b = B - A, x, y, n = 1ll << k, d;
exgcd(a, n, d, x, y);
if (b % d)
puts("FOREVER");
else
{
x = (x * (b / d)) % n;
x = (x % (n / d) + n / d) % (n / d);
printf("%lld\n", x);
}
}
return 0;
}