正经题解
2025-07-24 11:58:11
发布于:北京
4阅读
0回复
0点赞
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int gcd(int a, int b) {
return b ? gcd(b, a % b) : a;
}
int lcm(int a, int b) {
return a / gcd(a, b) * b;
}
int solve(int a0, int a1, int b0, int b1) {
int ans = 0;
// 枚举b1的所有约数
for (int x = 1; x * x <= b1; x) {
if (b1 % x == 0) {
// 检查x是否满足条件
if (gcd(x, a0) == a1 && lcm(x, b0) == b1) {
ans;
}
// 检查对应的另一个约数
int y = b1 / x;
if (x != y && gcd(y, a0) == a1 && lcm(y, b0) == b1) {
ans++;
}
}
}
return ans;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int n;
cin >> n;
while (n--) {
int a0, a1, b0, b1;
cin >> a0 >> a1 >> b0 >> b1;
cout << solve(a0, a1, b0, b1) << "\n";
}
return 0;
}
全部评论 1
你可以用代码框封装代码,比如:
print(0)
1周前 来自 浙江
0
有帮助,赞一个