从阶乘中有效地计算数字的尾随零

时间:2017-07-10 01:46:57

标签: python algorithm performance primes factorial

我试图用python per this问题计算一个阶乘中的尾随零的数量。到目前为止,我的解决方案看起来像这样:

import math
def zeros(n):
    return len(str(math.factorial(n))) - len(str(math.factorial(n)).rstrip('0'))

这适用于较小的数字,但其中一个测试是1000000000!,我的算法效率低导致系统中断。

我过去一直在努力提高算法效率,并希望对此主题提出任何一般性建议,以及任何可以使该算法更有效的具体指示。

1 个答案:

答案 0 :(得分:2)

不是直接计算因子计算长度,而是最好使用代数属性。

例如,不是累计总数,而是跟踪2和5的倍数。