UVa10892
来源:互联网 发布:巴铁骗局 知乎 编辑:程序博客网 时间:2024/06/06 09:54
简介:给出n,求lcm(a,b)=n的(a,b)对数
分析:
首先把n质因子分解:
对于任何一个p,都有max(ka,kb)=k
- 当ka=k时,kb的取值范围是0~k(共k+1种选择)
- 当kb=k时,ka的取值范围是0~k(共k+1种选择)
综上所述,针对每一个lcm的质因子,都有2*k+1种方案(ka=kb的情况算一种)
所以
其中1/2是因为只计算a < b的情况,+1是因为要加上a=b=n的情况
//这里写代码片#include<cstdio>#include<cstring>#include<iostream>#define ll long longusing namespace std;int sshu[50000],tot=0;bool no[50000];int num[50000];void prime(){ memset(no,0,sizeof(no)); for (int i=2;i<50000;i++) { if (!no[i]) sshu[++tot]=i; for (int j=1;j<=tot&&sshu[j]*i<50000;j++) { no[sshu[j]*i]=1; if (i%sshu[j]==0) break; } }}int main(){ ll n; prime(); while (scanf("%lld",&n)!=EOF&&n) { ll ans=1; ll nn=n; for (int i=1;i<=tot&&sshu[i]<=n;i++) { int k=0; while (n%sshu[i]==0) { k++; n/=sshu[i]; } ans=ans*(ll)(2*k+1); } if (n!=1) ans*=2; ans/=2; ans++; printf("%lld %lld\n",nn,ans); } return 0;}
阅读全文
0 0
- uva10892
- uva10892
- uva10892
- UVa10892
- Uva10892 LCM Cardinality
- LCM的个数 UVa10892
- UVA10892 LCM Cardinality(gcd)
- UVA10892 最小公倍数素因子分解
- UVA10892 - LCM Cardinality(分解质因子)
- uva10892——LCM Cardinality(最小公倍数质因子分解)
- 创投日报:10月24日收录投融资项目15起
- 差分分组合作协同进化MATLAB代码
- it工程师常用英文自我介绍常用用语
- ubuntu 服务器自动安装
- Unique Paths:寻径问题
- UVa10892
- SwingWorker类解析
- C6748EDMA_GPIO_中断学习笔记
- CentOS7关闭防火墙和SELinux
- swift 获取app、ios 版本号及设备信息
- PHP的RSA签名
- java-第三天
- 人脸检测--Faceness-Net: Face Detection through Deep Facial Part Responses
- QT实现CSDN上传资源管理助手Demo之(1)抓包分析HTTP协议