### 1141A Game 23

cf传送门：Game 23
vj传送门：Game 23

#### 题目描述

A. Game 23

Polycarp plays "Game 23". Initially he has a number n and his goal is to transform it to m. In one move, he can multiply n by 2 or multiply n by 3. He can perform any number of moves.

Print the number of moves needed to transform n to m. Print -1 if it is impossible to do so.

It is easy to prove that any way to transform n to m contains the same number of moves (i.e. number of moves doesn't depend on the way of transformation).

Input
The only line of the input contains two integers n and m (1≤n≤m≤5⋅108).

Output
Print the number of moves to transform n to m, or -1 if there is no solution.

Examples
Input
120 51840
Output
7
Input
42 42
Output
0
Input
48 72
Output
-1
Note
In the first example, the possible sequence of moves is: 120→240→720→1440→4320→12960→25920→51840. The are 7 steps in total.

In the second example, no moves are needed. Thus, the answer is 0.

In the third example, it is impossible to transform 48 to 72.

#### 代码实现

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll n,m,k,a,b;
cin>>n>>m;
if(m%n!=0)
cout<<"-1";
ll s=0;
if(m%n==0)
{
k=m/n;
while(k%3==0)
{
k/=3;
s++;
}
while(k%2==0)
{
k/=2;
s++;
}
if(k!=1)
{
cout<<"-1"<<endl;
return 0;
}
cout<<s;
}
cout<<endl;
return 0;
}