对任意一个正整数n进行质因数分解,n=2x∗3y∗5z...n = 2^x*3^y*5^z...n=2 x  ∗3 y  ∗5 z  ... ,末尾0的个数M与2和5的个数即X,Z有关,每一对2和5都可以得到10,故M=min(XZ).又因为能被2整除的数出现的频率要比能被5整除的数出现的频率高,所以M=Z.所以只要计算出Z,就可以得到n!的末尾0的个数.
可以用公式计算出末尾0的个数,Z=N/5+N/52+N/53+...Z=N/5 + N/5^2 + N/5^3 + ...Z=N/5+N/5 2  +N/5 3  +... ,N/5N/5N/5 表示从1到N中能被5整除的数的个数,由于每个数都能贡献一个5,意味着能贡献一个0.N/52N/5^2N/5 2   表示从1到N中能被 525^25 2   整除的数的个数,每个数都能贡献2个5,意味着能贡献两个0,不过由于其中一次已经包含在 N/5N/5N/5 中了,只能再贡献一个0,依次类推.