题解:P11130 【MX-X5-T2】「GFOI Round 1」Interstellar
what_can_I_do · · 题解
传送门
首先,如果
在最开始设
如果退出循环后,
不太理解为什么这题能评到绿。
CODE:
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int t;
ll n,m;
inline ll gcd(ll a,ll b)
{
while(b^=a^=b^=a%=b);
return a;
}
int main()
{
scanf("%d",&t);
while(t--)
{
scanf("%lld%lld",&n,&m);
if(m%n)
{
puts("-1");
continue;
}
ll d=m/n,ans=0;
while(1)
{
ll g=gcd(n,d);
if(g==1) break;
d/=g,n*=g,ans++;
}
if(d>1) puts("-1");
else printf("%lld\n",ans);
}
return 0;
}