拆分数字(split)
题目描述
小明同学探索到一个古老的数学遗迹,在遗迹的深处发现了若干到道神秘的谜题。谜题中给出了整数 nn 和 kk ,并有如下提示:“在这个神秘的地方,存在着一类特殊的数字,它们的形式为 3^m3m(mm 是非负整数)。现在需要判断能否通过恰好 kk 个这样的特殊数字相加,得到整数 nn 。
换言之,是否存在一个非负整数序列 \{a_k\}{ak},使得 n = 3^{a_1} + 3^{a_2} + ... + 3^{a_k}n=3a1+3a2+...+3ak。
不出意外的,小明同学又把这个任务交给你了。
输入格式
输入的第一行包含一个正整数 TT,表示谜题的个数。
接下来 TT 行,每行两个整数 n,kn,k,表示一道谜题中的信息。
输出格式
输出共 TT 行。对于每一道谜题,如果可以则输出 Yes
,否则输出 No
。
样例 1 输入
4
5 3
17 2
163 79
1000000000000000000 1000000000000000000
样例 1 输出
Yes
No
Yes
Yes
样例 1 解释
对于第一个测试案例,5 = 3^1 + 3^0 + 3^05=31+30+30,因此满足了相关条件。
对于第二个测试案例,没有非负整数序列 a_1,a_2a1,a2 使得 17 = 3^{a_1} + 3^{a_2}17=3a1+3a2,因此不满足有关条件。
其余样例见下发文件。
数据规模与约定
- 对于 30\%30% 的数据,保证 n \le 10, k \le 5n≤10,k≤5。
- 对于另 30\%30% 的数据,保证 n \le 1000,k \le 2n≤1000,k≤2。
- 对于 100\%100% 的数据,保证 1 \le k \le n \le 1 \times 10^{9},1\le T\le1 \times 10^51≤k≤n≤1×109,1≤T≤1×105。