整数区间内整数的因子的个数

如求 100 的阶乘末尾 0 的个数;

思路:一个数 n 的阶乘末尾有多少个 0 取决于从 1 到 n 的各个数的因子中 2 和 5 的个数((2, 5) 构成的对的个数),

27×58=50,000,000

2^7\times 5^8=50,000,000

而 2 的个数是远远多余 5 的个数的(每 5 个连续的数,如 3,4,5,6,7,当然会有 1 个是 5 的倍数,会有两个是 2 的倍数), 因此求出 5 的个数即可.

求解因子 5 的个数的方法:是用 n 不断除以 5, 直到结果为 0, 然后把中间得到的结果累加. 例如,

  • 100/5 = 20,表示能被 5 整除
  • 20/5 = 4,或者 100/5^2 表示能被 525^2 整除的个数
  • 4/5= 0,或者 100/5^3 表示能被 535^3 整除的个数

则 1 到 100 中因子 5 的个数为 (20 + 4 + 0) = 24 个, 即 100 的阶乘末尾有 24 个 0. 其实不断除以 5, 是因为每间隔 5 个数有一个数可以被 5 整除, 然后在这些可被 5 整除的数中, 每间隔 5 个数又有一个可以被 25 整除, 故要再除一次, … 直到结果为 0, 表示没有能继续被 5 整除的数了.

def numOfTailZero(n):cnt = 0while n:cnt += n // 5n //= 5return cnt

阶乘末尾 0 的个数相关推荐

  1. 滴滴2017校园招聘编程题——阶乘末尾0的个数

    1.题目如下图所示: 2.分析:         这个题目描述的很简单,思路看似也很清晰,我们第一想到的肯定就是正常计算和统计--先计算N!阶乘的结果,然后统计结果末尾0的个数.看似这是一个很好的也很 ...

  2. C++版本计算n阶乘末尾0的个数原理讲解及代码实现

    C++版本计算n阶乘末尾0的个数原理讲解及代码实现 /*! * Copyright (c) 2020,ZYF. * All Rights Reserved. * * \file Factorial.c ...

  3. 求n的阶乘末尾0的个数

    输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2. 思路:末尾0的个数就是指这个数总共有几个10因子,而10又能表示成2和5的乘积.假 ...

  4. 阶乘末尾0的个数(java)

    从输入中读取一个数n,求出n!中末尾0的个数. 输入格式: 输入有若干行.第一行上有一个整数m,指明接下来的数字的个数.然后是m行,每一行包含一个确定的正整数n,1<=n<=1000000 ...

  5. 阶乘末尾 0 的个数.c

    // 阶乘尾数零的个数 // 100!的末尾有多少个0?/* 问题分析和算法设计:首先分析在100!结果值的末尾产生0的条件.不难看出:一个整数若含有一个因子5则必然会在求100!时产生一个0.因此问 ...

  6. 求阶乘N!末尾0的个数

    POJ上有这个题目.http://poj.org/problem?id=1401.去掉一大堆没有用的信息,POJ的描述如下: For example, they defined the functio ...

  7. c语言 n阶阶乘尾0个数,计算n的阶乘(n!)末尾0的个数

    题目: 给定一个正整数n,请计算n的阶乘n!末尾所含有"0"的个数. 举例: 5!=120,其末尾所含有的"0"的个数为1: 10!= 3628800,其末尾所 ...

  8. 【经典智力题】1024! 末尾有多少个0?——“计算阶乘末尾0的数量”问题引出

    网上有这样一个广为流传的有趣问题: 1024! 末尾有多少个0? 相应的解法是: 末尾0的个数取决于乘法中因子2和5的个数.显然乘法中因子2的个数大于5的个数,所以我们只需统计因子5的个数. 是5的倍 ...

  9. 统计阶乘结果的末尾0的个数

    统计结成结果的末尾0的个数 今天看到一道题目,是让求解 1024! 末尾的0的个数.对于这个问题,作者首先想到了蛮力法..先将阶乘的结果计算出来放入数组然后统计末尾0的个数.这样做的话首先得先进行较大 ...

最新文章

  1. 比navicat更好用的工具_5118是查什么的?做什么用的?对比站长工具和爱站谁更好?...
  2. 网上看的几点人生建议
  3. msbuild构建步骤_如何按照以下步骤构建最终的AI聊天机器人
  4. 101 Free VMware Tools
  5. 神奇的 37% 的概率
  6. postgres数据库常见报错
  7. cvc-complex-type.2.3: Element 'beans' cannot have character [children]
  8. DotPass for Mac(密码生成器)
  9. html给页面整体添加左右边距_css div 网页的页面边距怎么控制
  10. k8s资源之pvpvcsc
  11. react 页面跳转(下一页,返回上一页)
  12. TADF材料的机制原理;TADF的机理;热活化延迟荧光如何产生?
  13. css修改谷歌浏览器和火狐浏览器的滚动条样式
  14. CPU发展史和相关品牌介绍
  15. 智能语音语义时代,产品经理怎么让AI更聪明?(效果向)
  16. Android回调详解
  17. 万般皆下品,惟有读书高
  18. linux使用spotify/kafka 镜像docker部署 Kafka
  19. SAAS软件的成熟度模型总结
  20. elasticsearch 深入 —— 全文检索

热门文章

  1. 自动化部署mysql主从复制集群_使用docker部署mysql主从复制集群
  2. mysql当执行delete语句时备份_mysql中,执行delete语句时出现Lock wait timeout exceeded问题...
  3. 可以做服务器操作系统的是,可以做服务器操作系统
  4. LeetCode 98. 验证二叉搜索树(递归)(迭代)
  5. 北京地铁票价查询系统 c++ Dijkstra算法
  6. 华为lab-rs-v1-2.3_OSPF基础
  7. win10装系统--笔记
  8. linux常用命令整理1
  9. kickstart注意事项
  10. hdu 5919--Sequence II(主席树--求区间不同数个数+区间第k大)