n的阶乘末尾含有“0”的个数

关于这道题,见过两种问法:

  1. 给定参数n(n为正整数),请计算n的阶乘n!末尾所含“0”的个数。
  2. (n!%(10^k)) == 0。已知n,求能使上式成立的K的最大值。

问题分析:
显然,对于阶乘这个大数,我们不可能将其结果计算出来,在统计其末尾所含有的“0”的个数。所以必须从其数字特征进行分析。

首先考虑一般的情形。对于任意一个正整数,若对其进行因式分解,那么其末尾的“0”必可以分解为2*5。这里每一个“0”必然和一个“2”与“5”对应。这里是阶乘,含有2的分解比含有5的分解多很多。所以这道题的是问:正整数n因式分解中“5”的个数。例如6的阶乘:

6! = 6 * 5 * 4 * 3 * 2 * 1
分解后
6! = (3*2)*5*(2*2)*3*2*1 = 5*3*3*2*2*2*2*1

从上面的例子可以看出,分解之后6的阶乘含有一个5,四个2,2的个数5多很多。

对于n<5,因为不含分解因子“5”,所以末尾没有0

但是对于n>=5的情况呢?我们可以把含有分解因子为“5”的给提出来,把n!变为

n! = [5m*5(m-1)*....*10*5]*a,a是一个不含因子“5”的整数,其中n = 5m + r (0<= r <= 4)

例如26的阶乘:


                
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值