【hdu 4497】GCD and LCM 【算术基本定理】
来源:互联网 发布:hibernate sql注入 编辑:程序博客网 时间:2024/05/16 06:44
Problem Description
Given two positive integers G and L, could you tell me how many solutions of (x, y, z) there are, satisfying that gcd(x, y, z) = G and lcm(x, y, z) = L?
Note, gcd(x, y, z) means the greatest common divisor of x, y and z, while lcm(x, y, z) means the least common multiple of x, y and z.
Note 2, (1, 2, 3) and (1, 3, 2) are two different solutions.
Input
First line comes an integer T (T <= 12), telling the number of test cases.
The next T lines, each contains two positive 32-bit signed integers, G and L.
It’s guaranteed that each answer will fit in a 32-bit signed integer.
Output
For each test case, print one line with the number of solutions satisfying the conditions above.
Sample Input
2
6 72
7 33
Sample Output
72
0
Source
2013 ACM-ICPC吉林通化全国邀请赛——题目重现
Recommend
liuyiding
就是一点 算术基本定理 一个正整数 n 一定可以分解为
n=p1^r1*p2^r2*p3^r3……pn^rn (其中p1p2p3..pn 都是素数)
还有一个公式
IF gcd(a,b)==d to gcd(a/d,b/d)==1 。
这个的题解讲的很清楚了
代码
#include<bits/stdc++.h>#define LL long longusing namespace std;const int MAXN = 500+10;const int MAXM = 1e5;LL g,l;LL p[50],ge;LL r[50];void getn(int m){ ge=0;LL n=m; memset(r,0,sizeof(r)); for(LL i=2;i*i<=n;i++){ if(n%i==0){ p[ge]=i; while(n%i==0) { r[ge]++;n/=i; } ge++; //printf("i==%d\n",i) ; } } if(n>1) { p[ge]=n; r[ge++]++; }}int main(){ int t;cin>>t; while(t--){ scanf("%lld%lld",&g,&l); LL cnt=1; if(l%g) { puts("0");continue;} getn(l/g); for(int i=0;i<ge;i++) cnt=cnt*6*r[i]; printf("%lld\n",cnt); } return 0;}
- HDU 4497 GCD and LCM (素数筛选+算术基本定理)
- 【hdu 4497】GCD and LCM 【算术基本定理】
- HDU 4497 GCD and LCM(唯一分解定理+排列组合)
- hdu 4497 GCD and LCM (唯一分解定理 + 计数)
- hdu 4497 GCD and LCM
- hdu 4497 GCD and LCM
- HDU - 4497 GCD and LCM
- HDU - 4497 GCD and LCM
- HDU 4497 GCD and LCM
- HDU 4497 GCD and LCM
- HDU 4497 GCD and LCM
- HDU 4497 - GCD and LCM (质因式分解 GCD LCM)
- GCD and LCM HDU
- GCD and LCM HDU
- GCD and LCM HDU
- HDU 4497 GCD and LCM 解题报告
- HDU 4497GCD and LCM(素数分解)
- hdu 4497 GCD and LCM(数学知识很重要)
- Android从相册选择图片并裁剪
- Flask之Blueprint
- Install wxPython2.8 in the Ubuntu16.04
- Sudoku (深搜)
- codeforces835 C
- 【hdu 4497】GCD and LCM 【算术基本定理】
- [bzoj2788][Poi2012]Festival floyd 差分约束系统 tarjan
- Android中touch事件机制学习总结
- 顶部标题栏在页面滚动后逐渐淡出
- c++ template报错
- 深入理解Java集合框架系列-第二章、Java集合中的hashCode方法
- centos下修改文件后如何保存退出
- React去掉双击文字的选中状态
- 监听服务器端口