https://vjudge.net/problem/CodeForces-1141A
#include <bits/stdc++.h> using namespace std; int a,b; int main(){ scanf("%d%d",&a,&b); if(b%a!=0){ //先判断m能不能整除n printf("-1"); return 0; } b=b/a; //除得两者相差的倍数 a=0; while(b%2==0) b=b/2,a++; //除去b因数中所有的2 while(b%3==0) b=b/3,a++; //除去b因数中所有的3 if(b!=1) a=-1; //如果b不为1那么说明b一开始就含有不为2或3的因数,达不到,直接输-1 printf("%d",a); } /*给出两个数n,m 问n能不能通过乘2或者乘3变成m,如果可以,请输出需要乘的次数,如果不能 请输出-1 */