Python 专用AC代码(求点赞)
2026-09-20 20:25:05
发布于:江苏
14阅读
0回复
0点赞
import sys
data = sys.stdin.read().split()
FC = {}
def fac(v):
if v in FC: return FC[v]
f = []; w = v
p = 2
while p * p <= w:
if w % p: p += 1 + (p & 1)
else: w //= p; f.append(p)
if w > 1: f.append(w)
FC[v] = list(set(f))
return FC[v]
def vp(x, p): return 0 if x % p else 1 + vp(x // p, p)
def cnt(p, A, a, B, b):
x0 = vp(A, p); x1 = vp(a, p); y0 = vp(B, p); y1 = vp(b, p)
if x0 > x1 and y0 < y1: return 1 if x1 == y1 else 0
if x0 > x1: return 1
if y0 < y1: return 1
return y1 - x1 + 1
def solve(A, a, B, b):
if A % a or b % B or b % a: return 0
r = 1
for p in fac(b): r *= cnt(p, A, a, B, b)
return int(r)
n = int(data[0])
res = [str(solve(int(data[1 + 4 * i]), int(data[2 + 4 * i]), int(data[3 + 4 * i]), int(data[4 + 4 * i]))) for i in range(n)]
sys.stdout.write(chr(10).join(res))
全部评论 1
真的求点赞

2026-09-20 来自 江苏
0

有帮助,赞一个