问题 2382 --组合数问题

2382: 组合数问题

题目描述

  组合数C(n,m)表示的是从 n 个物品中选出 m 个物品的方案数。举个例子,从(1, 2, 3)三个物品中选择两个物品可以有(1, 2),(1, 3),(2, 3)这三种选择方法。根据组合数的定义,我们可以给出计算组合数C(n,m)的一般公式:

其中 n! = 1 × 2 × · · · × n 。
小葱想知道如果给定 n, m 和 k ,对于所有的 0 ≤ i ≤ n, 0 ≤ j ≤ min (i, m) 有多少对(i, j) 满足C(i,j)是 k 的倍数。

输入

第一行有两个整数t,k,其中t代表该测试点总共有多少组测试数据,k的意义见 【问题描述】。
接下来t行每行两个整数n,m,其中n,m的意义见【问题描述】。

输出

t行,每行一个整数代表所有的 0 ≤ i ≤ n, 0 ≤j ≤ min (i, m) 中有多少对 (i, j) 满足C(i,j)是 k 的倍数。

样例输入输出

输入#1 复制
1 2
3 3
输出#1 复制
1
输入#2 复制
2 5
4 5
6 7
输出#2 复制
0
7

提示

【样例1说明】
在所有可能的情况中,只有C(2,1)是2的倍数。

【子任务】

序号 标题 作者 发表时间 费用 订购数 操作