1.题目:
2.代码:题解都在代码里了;
#include <iostream>
#include <algorithm>
using namespace std;
int x, y;//题目要求输入的x,y;
int ans1, ans2, sum;//ans1用来记录最大公约数,ans2用来记录最小公倍数;
//sum记录p,q的总数;
int main() {
cin >> x >> y;
for (int j = 1; j <= y ; j++) {//我用两个for循环会超时,因为x,y
//的数据范围都是100000;所以我想了一个办法,用一个for;由样例我们可以看出,比如
//15 12:15等于3*5;而12等于60/5;12 15:12等于3*4;而15等于60/4;所以我们用一个for循环可得
int p = x * j, q = y / j;//x乘j;y除一个j;
ans1 = __gcd(p, q);//记录去p,q的最大公约数;
ans2 = p * q / ans1;//记录p,q的最小公倍数;
if (ans1 == x && ans2 == y) {
sum++;
}
}
cout << sum;
return 0;
}