关于NOIO
  • 板块学术版
  • 楼主Moeebius
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/3/26 19:22
  • 上次更新2023/10/28 05:30:04
查看原帖
关于NOIO
356003
Moeebius楼主2022/3/26 19:22

pj T2T3有民间数据了吗


T2 这里有一份代码求估分qwq

#include<bits/stdc++.h>
using namespace std;
#define For(i,j,k) for(register int i=j; i<=k; ++i)
#define ForDown(i,j,k) for(register int i=j; i>=k; i--)
#define il inline
#define ll long long
template<typename T>
il void read(T &x)
{
	x=0;
	char c=getchar();int mul=1;
	while(!isdigit(c)) {
		if(c=='-') mul=-1;
		c=getchar();
	}
	while(isdigit(c))
	{
		x=(x<<3)+(x<<1)+c-'0';
		c=getchar();
	}
	x*=mul;
}
ll gcd(ll a, ll b)
{
	return b==0 ? a : gcd(b,a%b);
}

int T;

int main()
{
	//freopen("math.in","r",stdin);
	//freopen("math.out","w",stdout);
	read(T);
	while(T--)
	{
		//cerr<<T<<endl;
		ll x,y,z;
		read(x);
		read(z);
		if(z%x!=0)
		{
			puts("-1");
			continue;
		}
		ll tmp=z/x;
		ll a=gcd(tmp,x);
		y=tmp/a;
		if(gcd(x,y)!=a) 
		{
			bool flg=1;
			for(ll j=2;j<=a;j++)
			{
				ll i=y*j;
				if(tmp%i) continue;
				if(x*i*gcd(x,i)==z)
				{
					flg=0;
					printf("%lld\n",i);
					break;
				}
			}
			if(flg) puts("-1");
		}
		else
			printf("%lld\n",y);
	}
	fclose(stdin);
	fclose(stdout);
	return 0;
}
2022/3/26 19:22
加载中...