CodeForces 1141A

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 */ 
原文地址:https://www.cnblogs.com/QingyuYYYYY/p/11630442.html