在组合数学中,我们学过排列数。
从 个不同元素中取出
个元素的所有排列的个数,叫做从
中取
的排列数,记为
。
具体计算方法为 (规定
)。
当 和
不是很小时,这个排列数是比较大的数值,比如
。
如果用二进制表示为 ,也就是说,最后面有
我们的问题就是,给定一个排列数,算出其二进制表示的后面有多少个连续的零。
输入格式
输入包含多组测试数据。
每组数据占一行,包含两个整数 。
最后一行为 0 0
,表示输入结束,无需处理。
输出格式
每组数据输出一行,一个结果,表示排列数
数据范围
输入最多包含
输入样例:
输出样例:
进制时,要求数的右边有几个
,就是求数有几个因子
同理二进制就是求数有几个因子- 如何求
中有几个因子
?
等价于求求的是
中能被
整除的数的个数
求的是
中能被
整除的数的个数
而能被p^2整除的数 包含有个
的因子
但是这些数也是的倍数,所以在
时已经加了一遍
此时只需要即可。
其它的同理