求安慰
  • 板块灌水区
  • 楼主konyakest
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/3/27 00:12
  • 上次更新2023/10/28 05:27:10
查看原帖
求安慰
482660
konyakest楼主2022/3/27 00:12

rt noio入门t2我写了乱搞做法,因为棺方样例3,4没有-1,所以我忘了特判,再加上参数小了,于是100->0

#include<bits/stdc++.h>
#define F(i,j,k) for (signed i=signed(j);i<=signed(k);i++)
#define endl '\n'
#define int unsigned long long
using namespace std;
int t;
int x,z;
signed main () {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
   	cin>>t;	
    while(t--){	
        cin>>x>>z;		
        if(z%x!=0) {			
            cout<<-1<<endl;			
            continue;		
        }		
        int k=z/x;		
        int g=__gcd(k,x);		
        if(k%g!=0) {			
            cout<<-1<<endl;			
            continue;		
        }
        if(x*(z/x/g)*__gcd(x,z/x/g)!=z) for(int i=500;i>=1;i--){		
            if(g%(i*i)==0) {		
                g/=i;			
                if(x*(z/x/g)*__gcd(x,z/x/g)==z) goto end;			
                else g*=i;			
            }		
        }
        else goto end;		
        cout << "-1" << endl;
        continue;
        end:;
        cout<<z/x/g<<endl;	
    }
    return 0;
}
2022/3/27 00:12
加载中...