128 周赛
本周做了个寂寞,第二题一直超时超时……,虽然看 AC数量是第三题的更多,但最终还是没去做第三题……
看完别人的答案,发现原来这题可以这么简单,这让我想起来当初的数学,记得有一类化简题还是计算题,直接做很难,但如果将某个数写成除以 1,也就是拆分成分数的形式,就很简单了。这道题就是这样。一个数乘以 k 的同时,另一个数要乘以 k^2,于是我就在想每次选取时,谁乘 k,谁乘 k^2,但实际上反过来推,直接让 a * b 就可以得到最终一定是 k^3 次方。如果
py
t = int(input())
for _ in range(t):
a,b = map(int, input().split())
prod = a * b
prod_3 = int(prod ** (1/3))
if (prod_3+1) ** 3 == prod:
prod_3 = prod_3 + 1
elif (prod_3-1) ** 3 == prod:
prod_3 = prod_3 - 1
if prod_3 ** 3 != prod:
print("No")
elif a % prod_3 != 0 or b % prod_3 != 0:
print("No")
else:
print("Yes")