#P3532. C Looooops

C Looooops

当前没有测试数据。

Description

对于 C 语言的

for (variable = A; variable != B; variable += C)
  statement;

循环语句,问在 $k$ 位存储系统中循环几次才会结束。若在有限次内结束,则输出循环次数。否则输出死循环。

Input Format

多组数据,每组数据一行四个整数 $A, B, C, k$。$k$ 表示 $k$ 位存储系统。

读入以 0 0 0 0 结束。

Output Format

若在有限次内结束,则输出循环次数。否则输出 FOREVER。
3 3 2 16
3 7 2 16
7 3 2 16
3 4 2 16
0 0 0 0
0
2
32766
FOREVER

Hint

对于全部数据,$1\le k\le 32,0\le A,B,C\lt 2^k$。

Source

扩展欧几里得算法