题意:求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个质数)。
题意:求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个质数)。
转载于:https://www.cnblogs.com/txd0u/p/3578573.html