计算阶乘右端0的个数

计算阶乘右端0的个数

\(n\)很大时,计算\(n!\)变的非常困难。在这个前提下,想要去计算\(n!\)右端有多少个\(0\)就要利用一些数学技巧。

任何一个大于\(1\)的自然数都可写成质数的积的形式,在质数中只有\(2 * 5\)能够得出一个\(0\),因此我们需要计算\(n!\)在分解质因数之后\(2\)的个数和\(5\)的个数。显然\(2\)的个数是多于\(5\)的个数的,所以只需计算最后有多少个因子是\(5\)即可。

\(f(n)=[\frac{n}{5}]+[\frac{n}{25}]+[\frac{n}{125}]+[\frac{n}{625}]+...\)

\(5,10,15,20...​\)这些能贡献出一个\(5​\),而\(25,50...​\)能贡献出两个\(5​\)。能贡献出两个\(5​\)的数在第一次计算时已经算过一次了,所以这样计算并不冲突。

猜你喜欢

转载自www.cnblogs.com/searnova/p/8888961.html
今日推荐