CF1374B.Multiply by 2, divide by 6

传统题 时间 2000 ms 内存 256 MiB 4 尝试 1 已通过 1 标签

Multiply by 2, divide by 6

题目描述

给定一个整数 nn。每一步操作,你可以将 nn 乘以 22,或者如果 nn 能被 66 整除,则可以将 nn 除以 66

你的任务是找出将 nn 变为 11 所需的最少操作次数,或者判断是否无法做到这一点。

你需要回答 tt 个独立的测试用例。

输入格式

输入的第一行包含一个整数 tt1t21041 \le t \le 2 \cdot 10^4),表示测试用例的数量。接下来有 tt 行,每行一个整数 nn1n1091 \le n \le 10^9)。

输出格式

对于每个测试用例,输出一个答案——将 nn 变为 11 所需的最少操作次数;如果无法做到,则输出 1-1

说明/提示

以第六个样例 1511654415116544 为例,可以通过以下操作序列得到答案:

  1. 除以 66,得到 25194242519424
  2. 除以 66,得到 419904419904
  3. 除以 66,得到 6998469984
  4. 除以 66,得到 1166411664
  5. 乘以 22,得到 2332823328
  6. 除以 66,得到 38883888
  7. 除以 66,得到 648648
  8. 除以 66,得到 108108
  9. 乘以 22,得到 216216
  10. 除以 66,得到 3636
  11. 除以 66,得到 66
  12. 除以 66,得到 11

由 ChatGPT 4.1 翻译

样例

7
1
2
3
12
12345
15116544
387420489
0
-1
2
-1
-1
12
36

在线编程 IDE

建议全屏模式获得最佳体验