输入两个正整数 x0,y0,求出满足下列条件的 P,Q 的个数:
P,Q 是正整数。
要求 P,Q 以 x0 为最大公约数,以 y0 为最小公倍数。
试求:满足条件的所有可能的 P,Q 的个数。
一行两个正整数 x0,y0。
一行一个数,表示求出满足条件的 P,Q 的个数。
3 60
4
P,Q 有 4 种:
对于 100% 的数据,2≤x0,y0≤105。
#include<bits/stdc++.h>
using namespace std;
int gcd(int a,int b){
int k;
while(b){
k=b;
b=a%b;
a=k;
}
return a;
}
int lcm(int a,int b){
return a*b/gcd(a,b);
}
int main(){
int x,y,p=0,q=0,n=0;
cin>>x>>y;
if(y%x){
cout<<0;
return 0;
}
for(p=x;p<=y;p+=x){
for(q=x;q<=y;q+=x){
if(gcd(p,q)==x && lcm(p,q)==y) n++;
}
}
cout<<n;
}