https://oier.team/record/66f7fe4be984d98894c1556a
跑了3001ms,MX是多跑100ms的。
#include<bits/stdc++.h>
#define int long long
#define getchar getchar_unlocked
using namespace std;
template<typename T1>
void read(T1 &x){
char c;
c=getchar();
bool flag=1;
while(c<'0'){
if(c=='-') flag=0;
c=getchar();
}
x=0;
while(c>='0'){
x=x*10+c-'0';
c=getchar();
}
}
void solve() {
int n,m;
read(n);read(m);
int bs=n,ans=0;
if(m%n!=0){
puts("-1");
return;
}
if(n==1&&m!=1){
puts("-1");
return;
}
if(n==m) {
puts("0");
return;
}
while(true){
int ob=bs;
bs=gcd(bs*bs,m);
++ans;
if(bs%m==0) {
break;
}
if(ob==bs) {
ans=-1;
break;
}
}
printf("%d\n",ans);
}
signed main() {
int t;
read(t);
while(t--) {
solve();
}
return 0;
}