CF1374B Multiply by 2, divide by 6

题目描述

给定一个整数 $n$。每一步操作,你可以将 $n$ 乘以 $2$,或者如果 $n$ 能被 $6$ 整除,则可以将 $n$ 除以 $6$。 你的任务是找出将 $n$ 变为 $1$ 所需的最少操作次数,或者判断是否无法做到这一点。 你需要回答 $t$ 个独立的测试用例。

输入格式

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

输出格式

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

说明/提示

以第六个样例 $15116544$ 为例,可以通过以下操作序列得到答案: 1. 除以 $6$,得到 $2519424$; 2. 除以 $6$,得到 $419904$; 3. 除以 $6$,得到 $69984$; 4. 除以 $6$,得到 $11664$; 5. 乘以 $2$,得到 $23328$; 6. 除以 $6$,得到 $3888$; 7. 除以 $6$,得到 $648$; 8. 除以 $6$,得到 $108$; 9. 乘以 $2$,得到 $216$; 10. 除以 $6$,得到 $36$; 11. 除以 $6$,得到 $6$; 12. 除以 $6$,得到 $1$。 由 ChatGPT 4.1 翻译