B - Multiply by 2, divide by 6

题意:这个题,对于一个n,你可以进行两种操作,一种是除以6(必须整除),一种是乘2。
题解:仔细分析一下,32=6,所以说,这个二的作用,就是把3变成6,这个步骤一合并,就相当于两步,第一步是把三变成6,第二部是把6变成1.
综上所述,一共有两个过程:
*
1.直接把6变成1.(耗费1步)
2.把3先变成6,再把6变成1(耗费两步)**

/*Keep on going Never give up*/
#pragma GCC optimize(3,"Ofast","inline")
#include <bits/stdc++.h>
const int maxn = 2e5+10;
const int MaxN = 0x3f3f3f3f;
const int MinN = 0xc0c0c00c;
typedef long long ll;
const int mod = 100000000;
using namespace std;

int main()
{
    int t;
    cin>>t;
    while(t--){
        int cnt1=0,cnt2=0;
        while(n%6==0) n/=6,cnt1++;
        while(n%3==0) n/=3,cnt2++;
        if(n==1) cout<<cnt1+cnt2*2<<endl;
        else cout<<-1<<endl;
    }
    return 0;
}