Uva 10061 - How many zero's and how many digits ?

题意:求n!在b进制下末尾零的个数和位数, \(n\leq 2^{20}, 1<b\leq 800\)。

思路:n!在b进制下的位数可以用log(n!)/log(b)得到;

n!末尾零的个数可以通过求因子b的个数得到,由于n很大,可以把b分解成质因子,假设第i个质因子个数为\(p_i\),然后统计出n!种对应质因子个数,假设对应n!种所含第i个质因子个数为\(s_i,所求为:\min \{\frac{s_i}{p_i}\}\)。

两个回答都可以打表(800以内有145个质数)。

posted @ 2014-03-03 16:15  努力变瘦  阅读(206)  评论(0编辑  收藏  举报