编程题
C循环
## 来源
Czech Technical University Open 2004 (ZOJ2305, POJ2115)
## 题目描述
给定C语言风格的一个for循环:
```cpp
for (variable = A; variable != B; variable += C)
statement;
```
即首先将循环变量设置为值A,当循环变量不等于B时,重复执行语句,然后将变量增加C。我们想知道对于给定的A、B和C,循环语句执行多少次。假定所有运算都是在k位无符号整数范围([0, 2k))内进行的,即要对模2k取余。
## 输入描述
输入包含多个测试数据。每个测试数据占一行,为四个整数A, B, C, k,1≤k≤32是循环变量的位数。输入的最后一行为4个0,代表输入结束。
## 输出描述
对每个测试数据,输出一行,为循环语句执行次数;如果循环不会结束,则输出FOREVER。
## 样例输入
```txt
3 3 2 16
3 7 2 16
3 4 2 16
0 0 0 0
```
## 样例输出
```txt
0
2
FOREVER
```