#KJJT2. 2021年莆田市校园创客节(高中组)——T2.单位分数划分

2021年莆田市校园创客节(高中组)——T2.单位分数划分

题目描述

分子为 11 ,分母为正整数的分数称为单位分数。

将正有理数 p/qp/q 表示为有限多个单位分数的总和称为将 p/qp/q 划分为单位分数。

例如,12\frac{1}{2} ++ 16\frac{1}{6} 是将 23\frac{2}{3} 划分为单位分数。

添加顺序的差异被忽略。

例如,我们不区分16\frac{1}{6} ++ 12\frac{1}{2}12\frac{1}{2} + 16\frac{1}{6}

对于给定的四个正整数 ppqqaann ,计算 p/qp/q的划分为满足以下两个条件的单位分数的数量。

划分为至多 nn 个单位分数的总和。划分的单位分数的分母乘积小于或等于a。例如,如果 (p,q,a,n)=(2,3,120,3)(p,q,a,n)= (2,3,120,3) ,您应该报告 44 ,因为

23=13+13\frac{2}{3} = \frac{1}{3} + \frac{1}{3} =12+16= \frac{1}{2} + \frac{1}{6} =14+14+16= \frac{1}{4} + \frac{1}{4} + \frac{1}{6} =13+16+16= \frac{1}{3} + \frac{1}{6} + \frac{1}{6}

请你枚举所有有效划分。

输入格式

输入包含最多 200200 组测试数据,后跟一个终止符。

每组数据一行,包含四个正整数 ppqqaann,满足 pp , qq \le 800800aa \le 1200012000nn \le 77。整数之间用空格分隔。

终止符仅由一行组成,其中包含由空格分隔的四个零。它不是输入数据的一部分,而是输入结束的标记。

输出格式

输出应该由每行包含一个整数组成。输出中不应出现其他字符。

对应于数据集 pp , qq , aa , nn 的输出整数应该是p/q的所有分区的数量,最多为 nn 个单位分数,使得单位分数的分母的乘积小于或等于 aa

样例

2 3 120 3
2 3 300 3
2 3 299 3
2 3 12 3
2 3 12000 7
54 795 12000 7
2 3 300 1
2 1 200 5
2 4 54 2
0 0 0 0
4
7
6
2
42
1
0
9
3