分析:先求出100!的值,然后数一下末尾有多少个零。事实上,与上题一样,由于计算机所能表示的整数范围有限,这是不可能的。
为了解决这个问题,必须首先从数学上分析在100!结果值的末尾产生零的条件。不难看出:一个整数若含有一个因子5,则必然会在求100!时产生一个零。因此问题转化为求1到100这100个整数中包含了多少个因子5。若整数N能被25整除,则N包含2个因子5;若整数N能被5整除,则N包含1个因子5。
def baohan_five_count(n:int)->int:
count=0
while (n/5)%1==0: #n是整数
n=n/5
count=count+1
return count
sum=0
for i in range(1,3000):
sum=sum+baohan_five_count(i)
print(sum)
输出:
745