题目链接:http://codeforces.com/problemset/problem/1141/A
首先,nn一定要是mm的倍数。否则就无法转换,输出-1;
然后令k=.frac{m}{n} ,即k=.frac{m}{n} .
将k 分解质因数,若分解结果是k=.frac{m}{n} ,那答案就是k=.frac{m}{n} 。
如果无法分解成k=.frac{m}{n} ,那么输出-1。
AC代码:
#include <cstdio>
using namespace std;
int main() {
int n,m;
while(scanf("%d%d",&n,&m) != EOF) {
if(m % n != 0) {
puts("-1
");
} else if (n == m) {
puts("0
");
} else {
int k = m / n;
int cnt = 0;
while (k % 2 == 0) {
cnt++;
k /= 2;
}
while (k % 3 == 0) {
cnt++;
k /= 3;
}
if(k != 1) {
puts("-1
");
} else {
printf("%d
",cnt);
}
}
}
return 0;
}