输入两个正整数x0,y0(2≤x0≤100,2≤y0≤5000),求出满足下列条件的P、Q的个数。
条件1:P、Q是正整数。
条件2:要求P、Q以x0为最大公约数,以y0为最小公倍数。
试求,满足条件的所有可能的两个正整数的个数。
输入/输出例子1
输入:
3 60
输出:
4
样例解释
提示
说明:(不用输出)此时的 P Q 分别为,
3 60
15 12
12 15
60 3
所以,满足条件的所有可能的两个正整数的个数共4种。
思路:
主要是要脑子转的过来,要求最大步数,那么就只能用3和2
#include<iostream>
using namespace std;
int gcd(int a,int b){
if(b!=0)
return gcd(b,a%b);
return a;
}
int main(){
int x,y;
cin>>x>>y;
int sum=0;
for(int i=1;i*i<x*y;i++){
if((x*y)%i==0 && gcd(i,(x*y)/i)==x)
sum++;
}
sum=sum*2;
if(x==y)
sum++;
cout<<sum;
return 0;
}