#973. 硬币

硬币

题目描述

在伯兰(Berland),有两种面值的硬币,面值分别为 22kk

你的任务是判断是否可以用这些硬币表示出面值 nn,即是否存在非负整数 xxyy,使得 2x+ky=n2 \cdot x + k \cdot y = n

输入格式

第一行包含一个整数 tt (1t1041 \le t \le 10^4) —— 测试用例的数量。

每个测试用例仅包含一行,有两个整数 nnkk (1kn10181 \le k \le n \le 10^{18}k2k \neq 2) —— 分别表示要表示的目标面值和第二种硬币的面值。

输出格式

对于每个测试用例,如果能够用这些硬币表示出 nn,输出 YES;否则输出 NO

样例输入 1

4
5 3
6 1
7 4
8 8

样例输出 1

YES
YES
NO
YES

说明

样例解释

  • 在第一个测试用例中,你可以取一枚面值为 22 的硬币和一枚面值为 k=3k=3 的硬币(2×1+3×1=52 \times 1 + 3 \times 1 = 5)。
  • 在第二个测试用例中,你可以取三枚面值为 22 的硬币,或者取六枚面值为 k=1k=1 的硬币。
  • 在第三个测试用例中,无法组合出面值 77
  • 在第四个测试用例中,你可以取一枚面值为 k=8k=8 的硬币。

数据范围

  • 对于所有测试点,保证 1t1041 \le t \le 10^4
  • 对于每个测试用例,保证 1kn10181 \le k \le n \le 10^{18}k2k \neq 2
  • 保证所有的输入数值均为整数。