记录编号 603661 评测结果 WTWTWWWWTT
题目名称 [CSP 2023J]一元二次方程 最终得分 0
用户昵称 Gravatar会放牛的鸵鸟 是否通过 未通过
代码语言 C++ 运行时间 8.112 s
提交时间 2025-07-20 19:58:06 内存使用 3.56 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int god(int a,int b) {
    if(b==0) return a;
    else return god(b,a%b);
}
int main() {
	freopen("uqe.in","r",stdin);
	freopen("uqe.out","w",stdout); 

    int T, M;
    cin >> T >> M;
    while (T--) {
        int a, b, c;
        cin >> a >> b >> c;
        int d=b*b-4*a*c;
        if(d<0)
        cout<<"NO";
        else
        {int p,q;
        //★★☆
        if(a>0)
			{
				a=-a;
				b=-b;
				c=-c;
			}
		int k=1,t;
		for(int y=2;y*y<=d;y++)
		while(d%(y*y)==0)
		{   k*=y;
		   d/=(y*y);
			}	
			if(d==0||d==1)
			{
			  t=abs(god(2*a,-b+k*d));
			  cout<<(-b+k*d)/t;
              if(2*a/t != 1)
			   cout<<"/"<<2*a/t;
              cout<<endl;
              continue;
			}
			g:
			t=abs(god(-b,2*a));
			if(-b/t==0)
			  goto g;
			cout<<-b/t;
	        if(2*a/t != 1) 
			  cout<<"/"<<2*a/t;
            cout<<"+";
            t=abs(god(k,2*a));  
            if(k/t != 1) 
			  cout<<k/t<<"*"; 
            cout<<"sqrt("<<d<<")";
            if(2*a/t != 1) 
			  cout<<"/"<<2*a/t;
            cout<<endl;
	}
    }
    return 0;
}