UVa 10892 LCM Cardinality (数论+组合数学)
来源:互联网 发布:金山软件成都招聘 编辑:程序博客网 时间:2024/06/05 19:22
UVa 10892 LCM Cardinality
题目大意:
输入正整数
题目分析:
(想了好一会儿,orz……)
若将数拆分成唯一分解式,可以发现
设
a=pk11∗pk22∗...∗pknnb=pk′11∗pk′22∗...∗pk′nn 则有
gcd(a,b)=pmin(k1,k′1)1∗pmin(k2,k′2)2∗...∗pmin(kn,k′n)nlcm(a,b)=pmax(k1,k′1)1∗pmax(k2,k′2)2∗...∗pmax(kn,k′n)n
那么显然,对于
所以
当
ka=kn 时,0≤kb<kn ,共计kn
当kb=kn 时,0≤ka<kn ,共计kn 则总共为
kn∗2+1 (+1 的原因是还有ka=kb=kn )
当然最后的答案为ans/2+1(只取a≤b 情况)
代码:
#include<cmath>#include<cstdio>#include<iostream>#include<algorithm>using namespace std;typedef long long ll;int main(){ int n;ll ans; while(scanf("%d",&n)==1&&n) { int m=sqrt(n),t=n;ans=1; for(int i=2;i<=m&&t!=1;i++) if(t%i==0) { int cnt=0; while(t%i==0) t/=i,++cnt; ans*=(cnt*2+1);//指数均为cnt的仅能计算一次 } if(t>1) ans*=3; printf("%d %lld\n",n,ans/2+1);//加上a=b=n的情况 } return 0;}
0 0
- UVa 10892 LCM Cardinality (数论+组合数学)
- UVa 10892 - LCM Cardinality (因式分解 组合数学)
- uva 10892 - LCM Cardinality(数论)
- UVA 10892 - LCM Cardinality(数论)
- UVa:10892 LCM Cardinality
- UVA 10892-LCM Cardinality
- UVa 10892 - LCM Cardinality
- UVA 10892 - LCM Cardinality
- UVA 10892 LCM Cardinality
- uva 10892 LCM Cardinality
- UVa-10892 LCM Cardinality
- UVA-10892 LCM Cardinality
- UVa 10892 LCM Cardinality (数论&素因子分解)
- UVA 10892 LCM Cardinality(数论 质因数分解)
- UVa 10892 LCM Cardinality (分解质因数+数学)
- LCM Cardinality(UVA 10892)
- UVA - 10892 LCM Cardinality (枚举因子)
- UVA 10892 LCM Cardinality (因子分解 水题)
- Idea创建一个Maven项目
- Elasticsearch-PHP基本API使用教程
- android点击查看大图(长按保存图片)
- require.js入门简介——和派孔明
- 语音动画实现
- UVa 10892 LCM Cardinality (数论+组合数学)
- 创建DDL触发器
- H5底部按钮控制图片的大小远近
- JSP无法接收到Controller返回的Model(有点小坑)
- 利用blktrace分析IO性能
- 【小波分析】小波的正交性,消失矩等常见概念及常见的小波基介绍
- 简单的超链接实现表单ajax提交
- 【C++】学习笔记二十——第5章编程练习
- 微信开发笔记-(2)获取用户基本信息