UVA1069 Always an integer
题目背景
组合数学主要研究计数问题。比如,从 $n$ 个人中选两个人有多少种方法?圆周上有 $n$ 个点,两两相连之后最多能把圆面分成多少部分?如图所示,有一个金字塔,从塔顶开始每一层分别有 $1 \times 1$ , $1 \times 1$ , $\cdots$ , $n \times n$ 个小立方体,问一共有多少个小立方体?
很多问题的答案都可以写成 $n$ 的简单多项式。比如上述第一个问题的答案是 $n(n-1)/2$ ,也就是 $(n^2-n)/2$ ;第二个问题的答案是 $(n^4-6n^3+23n^2-18n+24)/24$ ;第三个问题的答案是 $n(n+1)(2n+1)/6$ ,即 $(2n^3+2n^2+1)/6$ 。
由于上述 $3$ 个多项式是计数问题的答案,因此当 $n$ 取任意正整数时,这些多项式的值都是整数。当然,对于其他多项式,这个性质并不一定成立。
题目描述
给定一个形如 $P/D$ (其中 $P$ 是 $n$ 的整系数多项式, $D$ 是正整数)的多项式,判断它是否在所有正整数处取到整数值。
输入格式
输入包含多组数据。每组数据仅一行,即一个多项式 $(P)/D$ ,其中 $P$ 是若干个形如 $Cn \text {\^ } E$ 的项之和,其中系数 $C$ 和 $E$ 满足以下条件:
1. $E$ 是一个满足 $0 \leq E \leq 100$ 的整数。如果 $E = 0$ ,则 $Cn \text {\^ } E$ 写成 $Cn$ ,除非 $C$ 等于 $1$ 或 $-1$ ( $C = 1$ 时写成 $n$ , $C = -1$ 时写成 $-n$ )。
2. $C$ 是一个整数。如果 $C$ 等于 $1$ 或 $-1$ ,且 $E$ 不是 $0$ 或者 $1$ ,则 $Cn \text {\^ } E$ 写成 $n \text {\^ } E$ 或者 $-n \text {\^ } E$ 。
3. 只有不在第一项的非负 $C$ 的前面才会有一个加号。
4. $E$ 的数值严格递减。
5. $C$ 和 $D$ 都在 $32$ 位带符号整数范围内。
输入结束标志为单个句号。
输出格式
对于每组数据,如果满足条件,输出 ```Always an integer``` ,否则输出 ```Not always an integer``` 。
说明/提示
### 样例输入
```text
(n^2-n)/2
(2n^3+3n^2+n)/6
(-n^14-11n+1)/3
.
```
### 样例输出
```text
Case 1: Always an integer
Case 2: Always an integer
Case 3: Not always an integer
```
翻译来源:《算法竞赛入门经典:训练指南》