"""
https://www.lanqiao.cn/problems/520/learning/?page=1&first_category_id=1&problem_id=520
"""
# 最大公因数
def gcd(a, b):
if b == 0:
return a
return gcd(b, a % b)
# 最小公倍数
def lcm(a, b):
return a * b // gcd(a, b)
T = int(input())
for _ in range(T):
ans = 0
a0, a1, b0, b1 = map(int, input().split())
for x in range(1, int(b1 ** 0.5) + 1):
if b1 % x == 0:
if gcd(x, a0) == a1 and lcm(x, b0) == b1:
ans += 1
# b1 == x * y则x和y都是b1的因子
y = b1 // x
if x != y:
if gcd(y, a0) == a1 and lcm(y, b0) == b1:
ans +=1
print(ans)
蓝桥杯-Hankson的趣味题
最新推荐文章于 2024-07-18 19:36:20 发布