# GCD and LCM

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)
Total Submission(s): 3002    Accepted Submission(s): 1315

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

x' = p1^i1+p2^i2+······+pn^in;

y' = p1^j1+p2^j2+······+pn^jn;

z' = p1^k1+p2^k2+······+pn^kn;

#include<bits/stdc++.h>
#define LL long long
using namespace std;

const int MAX = 1e7+10;
const int INF = 0x3fffffff;
int g,l;
int a[MAX];
int p[1000000+10];
int num = 0;

void init(){//素数打表
memset(a,0,sizeof(a));
memset(p,0,sizeof(p));
for(int i=2;i<=MAX;i++){
if(!a[i]){
p[num++] = i;
for(int j=2;i*j<=MAX;j++){
a[i*j] = 1;
}
}
}
}

int main(){
init();
int t;
cin>>t;
while(t--){
int ans = 0;
scanf("%d%d",&g,&l);
if(l%g!=0){
printf("0\n");
continue;
}
l/=g;
ans = 1;
for(int i=0;p[i]<=l;i++)//质数分解
if(l%p[i]==0){
int t=0;
while(l%p[i]==0){
l/=p[i];
t++;
}
ans=ans*t*6;//前面的解释。
}
printf("%d\n",ans);
}
return 0;
}

#### HDU 4497 GCD and LCM (数论&组合数学)

2013-10-25 00:23:34

#### hdu 4497 GCD and LCM 容斥原理

2013-09-27 19:54:49

#### HDU 4497 GCD and LCM （分解质因数）

2015-06-03 14:14:05

#### hdoj 4497（gcd&lcm分解质因数）

2016-02-16 23:35:09

#### HDU 3071-Gcd & Lcm game-线段树+素因子分解-[解题报告]HOJ

2017-05-02 20:27:37

#### hdu 4497 GCD and LCM(组合数学)

2014-04-25 23:21:54

#### HDU-5584 LCM Walk(GCD/LCM+找规律)

2016-09-22 23:37:17

#### GCD & LCM （数学基础）

2017-08-22 14:08:57

#### hdu 4497 已知三个数的gcd和lcm，求满足这个条件的三个的组数

2017-02-14 15:48:18

#### GCD and LCM HDU - 4497

2017-07-23 14:54:28