求助,NOIOL J组 T2 关于-1的输出
查看原帖
求助,NOIOL J组 T2 关于-1的输出
631713
Amano_Hina楼主2022/3/30 22:28

rt,蒟蒻的代码是照着官方题解打的,但不知道由于什么原因没有输出‘-1’,望指教。

code:

#include <bits/stdc++.h>
using namespace std;
long double gcd(unsigned long long int a,unsigned long long int b)
{
	 return b ? gcd(b,a%b) : a;
}
unsigned long long int lcm(unsigned long long int a,unsigned long long int b)
{
 	 return a*b/gcd(a,b);
}
int main()
{
/*	freopen("C:\\Users\\Admin\\Desktop\\math\\math2.in","r",stdin);*/
//	freopen("C:\\Users\\Admin\\Desktop\\math\\math2.in.out","w",stdout);
	int t;
	cin>>t;
	for(int i=1;i<=t;i++)
	{
		long double x,z;
		cin>>x>>z;
		long double d=sqrtl(gcd(x*x,z/x));
		long double q,p;
		p=x/d;
		q=z/p/(d*d*d);
		long double y=q*d;
		if((long double)x*(long double)y*(long double)d==(long double)z)
		{
//			cout<<x<<" "<<y<<" "<<d<<" "<<z<<endl;
//			cout<<x*y*d<<" "<<z<<endl;
			cout<<(unsigned long long int)y<<endl;
		}else{
			cout<<"-1"<<endl;
		}
	}
	return 0;
}

2022/3/30 22:28
加载中...