python实现判断一个正整数的阶乘末尾0的个数

算法

由于除了1!以外,阶乘均为偶数(有2),且有一个因子5末尾就含有一个0(例如25含有2个因子5)。因此,计算该数有多少个因子5,即可得到该数阶乘末尾0的个数。

python实现

def zero_count(n):
    count = 0
    while n > 0:
        n //= 5
        count += n
    return count


def main():
    print(zero_count(1024))


if __name__ == '__main__':
    main()

输出:

253

复杂度分析

循环次数为n//5,因此复杂度为 o ( n / / 5 ) o(n//5) o(n//5)

点赞