求调
查看原帖
求调
753807
lijiay楼主2024/11/8 17:28

求调

#include<bits/stdc++.h>
using namespace std;
int cl(int n)
{
	for(int i=n;i>=1;i--)
	{
		if(n%(i*i)==0)
		{
			return i;
		}
	}
}
int main()
{
	int t,m;
	cin>>t>>m;
	while(t--)
	{
		int a,b,c;
		cin>>a>>b>>c;
		int data=b*b-4*a*c;
		if(data<0)
		{
			cout<<"No"<<endl;
			continue;
		}
		if(sqrt(data)*sqrt(data)==data)
		{
			data=sqrt(data);
			int ans1=data-b,ans2=2*a;
			if(ans1<0)
			{
				cout<<'-';
				ans1=-ans1;
			}
			if(ans1==0)
			{
				cout<<0<<endl;
				continue;
			}
			int g=ans1;
			ans1/=__gcd(ans1,ans2);
			ans2/=__gcd(g,ans2);
			cout<<ans1;
			if(ans2!=1)
			cout<<'/'<<ans2;
			cout<<endl;
		}
		else
		{
			int k1=cl(data);
			int k2=data/(k1*k1);
			int ans1=-b,ans2=2*a,ans3=k1;
			if(ans1<0)
			{
				cout<<'-';
				ans1=-ans1;
			}
			if(ans1!=0)
			{
				int g=ans1;
				ans1/=__gcd(ans1,ans2);
				ans2/=__gcd(g,ans2);
				cout<<ans1;
				if(ans2!=1)
				cout<<'/'<<ans2;
				cout<<'+';
			}
			ans2=2*a;
			if(k1!=1)
			{
				int g=ans3;
				ans3/=__gcd(ans2,ans3);
				ans2/=__gcd(g,ans2);
				if(ans3!=1)
				cout<<ans3<<'*';
			}
			cout<<"sqrt("<<k2<<")"<<'/'<<ans2<<endl;
		}
	}
}
2024/11/8 17:28
加载中...