100! 末尾有多少个零

不用算出 100! 的天文数字,只数它含多少对 2×5 因子。5 比 2 稀缺,于是答案全看“5 的个数”。

分类
数论趣题
难度
入门
标签
阶乘、因子、整除、数论
100! 末尾有多少个零 · 漫画配图
漫画 · 100! 末尾有多少个零

题目

100!=1×2×3××100100! = 1 \times 2 \times 3 \times \cdots \times 100 的十进制末尾,有多少个连续的零?

(提示:末尾每多一个零,就多一个因子 10 = 2 × 5。)

答案与解析

每出现一对 2×52 \times 5,就贡献一个末尾零。乘积里 2 的因子到处都是(偶数都贡献),真正稀缺的是 5。所以只需数 1 到 100 中总共含多少个因子 5:

  • 5 的倍数: 100/5=20\lfloor 100/5 \rfloor = 20 个,各贡献至少 1 个 5;
  • 25 的倍数: 100/25=4\lfloor 100/25 \rfloor = 4 个(25,50,75,100),每个额外再多 1 个 5;
  • 125 的倍数: 100/125=0\lfloor 100/125 \rfloor = 0

合计 20+4=2420 + 4 = 24 个因子 5,也就能配出 24 个 10。

答案:100! 末尾有 24 个零。

背后的数学

推广到 n!n! 末尾零个数,公式是勒让德(Legendre)定理的特例: Z(n)=k1n5kZ(n)=\sum_{k\ge 1}\left\lfloor \frac{n}{5^k}\right\rfloor 实质是统计质因数 5 在 n!n! 中的总指数。同理可求“末尾有几个零”对任意进制 bb(分解 bb 的质因数后取各素因子指数的最小值)。