#3504. [GESP五级模拟]B进制阶乘

[GESP五级模拟]B进制阶乘

题目描述

一个正整数 xx 的 bb 进制表示,指把 xx 写成以 bb 为基数的形式,其中每位数字取自 0,1,…,b−10,1,\ldots,b-1。例如 120120 的二进制表示是 111100021111000_2。

给定两个正整数 nn 和 bb,求 n!n!(nn 的阶乘)的 bb 进制表示中,末尾连续的 00 的个数。

输入格式

一行两个正整数 n,bn, b,其中 nn 是阶乘的参数,bb 是进制,用空格隔开。

输出格式

一行一个整数,表示 n!n! 的 bb 进制表示中末尾连续的 00 的个数。

样例 #1

5 2
3

样例解释 #1

5!=1205! = 120,写成二进制是 111100021111000_2,末尾有 33 个连续的 00,所以答案是 33。

样例 #2

6 4
2

样例解释 #2

6!=7206! = 720,写成四进制是 23100423100_4,末尾有 22 个连续的 00,所以答案是 22。

样例 #3

100 2
97

样例解释 #3

100!100! 的数值非常大,无法直接列出。其二进制表示末尾连续的 00 的个数为 9797。

数据范围

对于所有数据,1≤n≤1061 \le n \le 10^6,2≤b≤1062 \le b \le 10^6。

本题采用捆绑测试。 只有通过一个子任务的全部测试点,才能获得该子任务的分数。

子任务 分值 测试点 附加约束
11 3030 001∼005001 \sim 005 n≤10n \le 10,b≤10b \le 10,无依赖
22 006∼010006 \sim 010 n≤1000n \le 1000,b≤1000b \le 1000,依赖子任务 11
33 4040 011∼024011 \sim 024 无附加限制,依赖子任务 22