LCM Cardinality(UVA 10892)
来源:互联网 发布:hsc热力学软件 编辑:程序博客网 时间:2024/05/25 23:26
题目链接
对于N的一个质因数i,设N中包含的i的最高次幂的指数为k,则i的两个幂的gcd为i^k的情况共有【i^k,i^0】到【i^k,i^(k-1)】k种+【i^0,i^k】到【i^(k-1),i^k】k种+【i^k,i^k】=2*k+1种,将所有质因数的情况乘起来,其中只有每个质因数都取【i^k,i^k】的情况没有重复,剩下的都出现了两次,于是最终答案为(ans+1)/2。
附上AC代码:
#include<iostream>#include<algorithm>#include<cstring>#include<cmath>#include<cstdio>#include<queue>#include<set>#include<vector>#include<map>#include<string>#include<cmath>#define pq priority_queue#define Pi acos(-1.0)#define MAXX 1000000007using namespace std;int gcd(int a,int b){ if(a%b) return gcd(b,a%b); else return b;}long long n;long long prime[1000006],l=0;bool life[1000006];long long go(long long x){ long long ans=0; while(n%x==0) { ans++; n/=x; } return 2*ans+1;}int main(){ long long ans,m; for(int i=2;1LL*i*i<=2000000000;i++) { if(!life[i]) { prime[l++]=i; for(int j=2;1LL*i*i*j*j<=2000000000;j++) life[i*j]=1; } } while(scanf("%lld",&n),n) { m=n; ans=1; for(int i=0;i<l;i++) { ans*=go(prime[i]); } if(n>1) ans*=3; cout<<m<<" "<<(ans+1)/2<<endl; } return 0;}
Memory: 0 KB Time: 0 MS
Language: C++ 4.8.2 Result: Accepted
0 0
- LCM Cardinality(UVA 10892)
- 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 (分解质因数+数学)
- UVA 10892 LCM Cardinality (因子分解 水题)
- UVa 10892 LCM Cardinality (数论+组合数学)
- 字符串与整形数之间的相互转化
- JS显示时间
- 2016夏季练习——线段树
- javaEE:day4-创建Servlet你不能不知道却被忽越的细节、小项目-用户注册(前台转后台再前台)
- 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序
- LCM Cardinality(UVA 10892)
- git快速入门(四)工作区,暂存区以及master分支
- Spring MVC 上传文件两种方式
- User-Agent收集
- python学习例程3-函数
- 阿里云平台java搭建及项目部署
- android源码中使用getDirtyBounds方法的类
- Swift使用AFNetwroking访问网络数据
- apache2.4出现(OS 64)指定的网络名不再可用。 : AH00341: winnt_accept: Asynchronous AcceptEx failed.问题