原题链接(英文):https://leetcode.com/problems/factorial-trailing-zeroes/description/
原题链接(中文):https://leetcode-cn.com/problems/factorial-trailing-zeroes/description/

如果将一个正整数因式分解,那么其末尾的 $0$ 必然可以分解为 $2\times 5$。
也就是说,因子中每一对 $2$ 和 $5$ 就对应着末尾的一个 $0$,因为 $2$ 肯定比 $5$ 多。
综上,所以我们只要统计因子中有多少个 $5$ 就是结果了。
根据算术基本定理中性质(5):$n!$ 的素因子分解中的素数 $p$ 的幂为 $[\frac{n}{p}]+[\frac{n}{p^2}]+[\frac{n}{p^3}]+\cdots$
我们把 $p=5$ 代入,计算出结果即为所求。

1
2
3
4
5
6
7
8
9
10
11
12
13
int trailingZeroes(int n)
{
int count_zeros = 0;
long long p = 5;

while (n / p)
{
count_zeros += n / p;
p *= 5;
}

return count_zeros;
}