编程题
单调回文分解
## 来源
Greater New York 2002 (ZOJ1353)
## 题目描述
一串正整数序列如果从左往右读过去,和从右往左读过去,完全是一样的,则这串正整数称为是回文的,例如:
23 11 15 1 37 37 1 15 11 23
1 1 2 3 4 7 7 10 7 7 4 3 2 1 1
一个回文正整数串如果从左边到中间这些数是非递减的,从中间到右边的数是非递增的,那么这个回文正整数串就称为是单调回文的。例如上述的2个例子中,第1个例子不是单调回文的,而第2个例子是单调回文的。
一个单调回文正整数串,如果所有正整数之和为N,则称它是整数N的单调回文分解。例如,1~8的所有单调回文分解为:
1: (1)
2: (2), (1 1)
3: (3), (1 1 1)
4: (4), (1 2 1), (2 2), (1 1 1 1)
5: (5), (1 3 1), (1 1 1 1 1)
6: (6), (1 4 1), (2 2 2), (1 1 2 1 1), (3 3), (1 2 2 1), ( 1 1 1 1 1 1)
7: (7), (1 5 1), (2 3 2), (1 1 3 1 1), (1 1 1 1 1 1 1)
8: (8), (1 6 1), (2 4 2), (1 1 4 1 1), (1 2 2 2 1), (1 1 1 2 1 1 1), ( 4 4), (1 3 3 1), (2 2 2 2), (1 1 2 2 1 1), (1 1 1 1 1 1 1 1)
编写一个程序,计算一个正整数的单调回文分解的个数。
## 输入描述
输入文件中包括许多正整数,每个正整数占一行,最后一行为0,表示输入文件的结束。
## 输出描述
对每个正整数,首先输出该整数,然后是一个空格,最后是这个数的单调回文分解的个数。
## 样例输入
```txt
8
213
0
```
## 样例输出
```txt
8 11
213 1055852590
```