HDU 4497 GCD and LCM(素因子分解+组合数学)
2015-09-04 08:31
337 查看
Description
已知lcm,gcd其中gcd=gcd(x,y,z),lcm=lcm(x,y,z),问有x,y,z多少种组合使得关系成立( (1,3,2)和(1,2,3)是不同解 )
Input
第一行为用例组数T,每组用例占一行包括两个整数gcd和lcm
Output
对于每组用例,输出解的个数
Sample Input
2
6 72
7 33
Sample Output
72
0
Solution
显然若lcm%gcd!=0时无解,令n=lcm/gcd,对n质因数分解后得到n=p1^k1*p2^k2*…*pm^km,那么必然有
a/g=p1^a1*p2^a2*…*pm^am
b/g=p1^b1*p2^b2*…*pm^bm
c/g=p1^c1*p2^c2*…*pm^cm
所以对于任意i(1<=i<=m),都有min(ai,bi,ci)=0,max(ai,bi,ci)=ki,当ai,bi,ci三者之中居中者取1~ki-1时,总共有6*(ki-1)种情况,当取0或者ki时,有2*3=6中情况,所以对于每个i,都有6*(ki-1)+6=6*ki种情况,所以枚举n的所有质因子幂级数k每次累乘6*k即可
Code
已知lcm,gcd其中gcd=gcd(x,y,z),lcm=lcm(x,y,z),问有x,y,z多少种组合使得关系成立( (1,3,2)和(1,2,3)是不同解 )
Input
第一行为用例组数T,每组用例占一行包括两个整数gcd和lcm
Output
对于每组用例,输出解的个数
Sample Input
2
6 72
7 33
Sample Output
72
0
Solution
显然若lcm%gcd!=0时无解,令n=lcm/gcd,对n质因数分解后得到n=p1^k1*p2^k2*…*pm^km,那么必然有
a/g=p1^a1*p2^a2*…*pm^am
b/g=p1^b1*p2^b2*…*pm^bm
c/g=p1^c1*p2^c2*…*pm^cm
所以对于任意i(1<=i<=m),都有min(ai,bi,ci)=0,max(ai,bi,ci)=ki,当ai,bi,ci三者之中居中者取1~ki-1时,总共有6*(ki-1)种情况,当取0或者ki时,有2*3=6中情况,所以对于每个i,都有6*(ki-1)+6=6*ki种情况,所以枚举n的所有质因子幂级数k每次累乘6*k即可
Code
#include<iostream> #include<cstdio> using namespace std; typedef long long ll; ll lcm,gcd; int main() { int T; scanf("%d",&T); while(T--) { scanf("%lld%lld",&gcd,&lcm); ll n=lcm/gcd; ll ans=lcm%gcd?0:1;//lcm%gcd!=0显然无解 for(ll i=2;i*i<=n;i++)//对n分解质因数 { ll m=0;//m是n某一素因子的幂级数 if(n%i)continue; while(n%i==0) m++,n/=i; ans=ans*6*m; } if(n!=1)//n仍然不等于1说明此时n是一个大素数 ans*=6; printf("%lld\n",ans); } return 0; }
相关文章推荐
- HDU 1466 计算直线的交点数(dp)
- HDU 1536 S-Nim(博弈论)
- PHP基础----HTML表单的创建与提交----18表单与 PHP
- Threat Intellgence
- POJ 1284 Primitive Roots(欧拉函数)
- POJ 2034 Anti-prime Sequences(数论+dfs)
- POJ 1365 Prime Land(分解质因数)
- POJ 2115 C Looooops(一元线性同余方程)
- POJ 3090 Visible Lattice Points(欧拉函数)
- POJ 2478 Farey Sequence(欧拉函数)
- POJ 2773 Happy 2006(数论)
- PHP基础----常用库函数----17图片打水印实例
- Fragment+RadioButton实现点击切换页面效果
- PHP基础----常用库函数----16生成图片
- C++之随笔(二)
- 关于存储过程可空条件查询
- PHP基础----常用库函数----15文件操作
- PHP基础----常用库函数----14JSON格式数据的操作
- PHP基础----常用库函数----13时间和日期
- TQ2440 学习笔记—— 18、存储控制器