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