test_count = int(input())
answer_list = [] # 存放每一组的结果
def getSum(number):
list_appr = [] # 创建一个存储真约数的集合
# 求解所有的真约数
for i in range(1, number // 2 + 1): # 对位于1 ~ number / 2 + 1的数进行遍历
if number % i == 0: # 是其真约数
list_appr.append(i) # 放到真约数列表中
return sum(list_appr) # 返回列表中的和,也就是这个数的所有的真约数的和
def judge(number1, number2):
# pass
# 两个数互为亲和数,就是两个数各自的真约数的和互为对面的数
# 1:求两个数的真约数的和
answer1 = getSum(number1)
answer2 = getSum(number2)
# 2:判断
if answer1 == number2 and answer2 == number1:
return "YES"
else:
return "NO"
for i in range(test_count):
num1, num2 = map(int, input().split()) #每次输入的测试的两个数
answer_list.append(judge(num1, num2)) #进入判断函数,并将判断结果返回到结果列表中
# 将结果输出
for answer in answer_list:
print(answer)
0.0分
0 人评分