题库练习 Multiply by 2, divide by 6
← 上一题 下一题 →

A13653 | Multiply by 2, divide by 6

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

You are given an integer $n$ . In one move, you can either multiply $n$ by two or divide $n$ by $6$ (if it is divisible by $6$ without the remainder).

Your task is to find the minimum number of moves needed to obtain $1$ from $n$ or determine if it's impossible to do that.

You have to answer $t$ independent test cases.

输入格式

The first line of the input contains one integer $t$ ( $1 \le t \le 2 \cdot 10^4$ ) — the number of test cases. Then $t$ test cases follow.

The only line of the test case contains one integer $n$ ( $1 \le n \le 10^9$ ).

输出格式

For each test case, print the answer — the minimum number of moves needed to obtain $1$ from $n$ if it's possible to do that or -1 if it's impossible to obtain $1$ from $n$ .

输入输出样例

输入 #1
7
1
2
3
12
12345
15116544
387420489
输出 #1
0
-1
2
-1
-1
12
36
C++ 编辑器
输入
输出