之前寫過一個階乘末尾0個數的計算方法,是要把階乘算出來
今兒想到若階乘最后為0,則必須有2*5,相當於把每個階乘因子分解並計算2和5的個數
現實中2的個數肯定大於5,所以只需要計算5的個數
對於一個階乘來說,因子5的個數應該為數字n//5,若為25、125這些為5的次方的數字,則還需要加上n//25、n//125,那么可以用推導式寫如下:
def factorial(factorialNum): return factorialNum == 0 if factorialNum // 5 ==0 else factorialNum // 5 + factorial(factorialNum // 5) print(factorial(125))