算数基本定理

每个大于1的正整数都可以被唯一分解为素数的成绩,在乘积中的素因子按照非降序排列

  • a = p1^a1 * p2^a2 * ... pn^an;
  • b = p1^b1 * p2^b2 * ... pn^bn;
  • gcd(a,b) = p1^min(a1,b1) * p2^min(a2,b2) * ... pn ^ min(an,bn);
  • lcm(a,b) = p1^max(a1,b1) * p2^max(a2,b2) * ... pn ^ max(an,bn);
  • max(gcd(a,b)) + min(gcd(a,b)) = a + b;
  • n!的素因子分解中素数p的幂为[n/p]+[n/p2]+[n/p3]... p^t <= n
  • 在因式分解中,2的因子的个数要大于5的因子的个数

题意:计算N!末尾的0的个数

分析:

显然分析是很重要的,计算末尾0的个数显然不科学,所以转化为计算2*5的个数,又有定理:在因式分解中,2的因子的个数要大于5的因子的个数,

则只要计算5的幂就好,用公式n!的素因子分解中素数p的幂为[n/p]+[n/p2]+[n/p3]... 0(p^t <= n)

算数基本定理的应用

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
using namespace std;
typedef long long ll;
int main()
{
int cas;
cin >> cas;
while(cas--)
{
ll n;
cin >> n;
ll five = 5;
ll sum = 0;
while(five < n)
{
sum += n/five;
five *= 5;
}
cout << sum << endl;
}
return 0;
}

最新文章

  1. Net设计模式实例之单例模式( Singleton Pattern)
  2. Unable to find element on closed window (WARNING: The server did not provide any stacktrace information)
  3. [Tools] Eclipse更改类注释自动生成模板
  4. Linux(centos)如何安装Zend Optimizer Zend Guard Loader
  5. map函数
  6. Django views 中的 shortcut function
  7. 安卓开发_浅谈Android动画(四)
  8. Homebrew OS X 不可或缺的套件管理器
  9. Git SSH Key 生成步骤
  10. MySql之JDBC环境
  11. Crashing Robots 分类: POJ 2015-06-29 11:44 10人阅读 评论(0) 收藏
  12. python35
  13. Google(谷歌)中国工程研究院 工程师 方坤 对学生朋友的一些建议
  14. 鼠标到哪tl到哪
  15. asp.net:用类来后台绑定数据源
  16. boost 无锁队列
  17. LVM 命令集总结(转)
  18. XHTML 是以 XML 格式编写的 HTML
  19. [SinGuLaRiTy] 2017-03-30 综合性测试
  20. Android ListView中Item点击事件失效解决方案

热门文章

  1. MySQL数据库主从同步延迟分析及解决方案
  2. Spark源码分析 &ndash; BlockManager
  3. ArcGIS Data Store 初体验
  4. Celery(一个懂得 异步任务、定时任务、周期任务 的&quot;芹菜&quot;)
  5. Linux df命令
  6. Vmwaretools
  7. Java设计原则—依赖倒置原则(转)
  8. codeforces 70 D. Professor&#39;s task 动态凸包
  9. 异常信息 Exception
  10. Cloudera Manager安装之时间服务器和时间客户端(二)