UVAOJ10061

Written by    22:21 December 6, 2014 

UVAOJ10061

有一点意思的数论题, 求N!在B进制数系统下的结果的位数以及末尾的零的个数.

求位数比较简单, 因为M位的B进制数最大值为B^M-1, 故

B^M-1 < N! <= B^(M+1)-1,

进而推出

B^M <= N! < B^(M+1)

求N!结果的位数就首先得把N!分解成不大于B的素数的乘积, 然后不断地从这些素数中提取素数使其积等于B, 直到不能提取出来为止, 成功提取的次数就是末尾0的个数.

Category : acm

Tags :