k 阶乘尾数零的个数
问题:
100!的尾数有多少个零?
思路:
先求出100!的值,然后数一下末尾有多少个零。事实上,与上题 k的 n 次方的最后三位数 一样,由于计算机所能表示的整数范围有限,这是不可能的。
一个整数若含有一个因子5,则必然会在求100!时产生一个零。因此问题转化为求1到100这100个整数中包含了多少个因子5。若整数N能被25整除,则N包含2个因子5;若整数N能被5整除,则N包含1个因子5。
def countOf5(n):
count = 0
while(n%5 == 0):
n = n/5
count = count+1
return count
def numberOfEnd0(N):
ans = 0
for i in range(5,N+1,5):
ans = ans + countOf5(i)
return ans
print(numberOfEnd0(50))
12
一个简单的 估算 是直接除以4