灵异事件
查看原帖
灵异事件
1274934
tangjy2012楼主2024/8/30 11:07
#include<bits/stdc++.h>
using namespace std;
int a,b,c,sq[16000005]={-1},t,m;
int gcd(int x,int y){
	if(y==0){
	    return x;
	}
	return gcd(y,x%y);
}
void yls(int fz,int fm){
	int g=gcd(abs(fm),abs(fz));
	fz/=g;
	fm/=g;
	if(fm<0){
		fm=-fm;
		fz=-fz;
	}
	cout<<fz;
	if(fm!=1){
		cout<<"/"<<fm;
	}
}
int main(){
	cin>>t>>m;
	for(int i=0;i<=4000;i++){
		sq[i*i]=i;
	}
	while(t--){
		cin>>a>>b>>c;
		int del=b*b-4*a*c;
		if(del<0){
			cout<<"NO\n";
			continue;
		}
		if(sq[del]!=-1){
			int x=sq[del]-b;
			if(a<0){
				x=-sq[del]-b;
			}
			yls(x,2*a);
		}else{
			int ch=1;
			for(int i=1;i<=1000;i++){
				if(del%(i*i)==0){
				    ch=i;
				}
			}
			del/=(ch*ch);
			if(-b!=0){
				yls(-b,2*a);
				cout<<"+";
			}
			int a2=abs(2*a);
			int g=gcd(ch,a2);
			ch/=g;
			a2/=g;
			if(ch==1){
				if(a2==1){
					cout<<"sqrt("<<del<<")";
				}else{
					cout<<"sqrt("<<del<<")/"<<a2;
				}
			}else{
				if(a2==1){
					cout<<ch<<"*"<<"sqrt("<<del<<")";
				}else{
					cout<<ch<<"*"<<"sqrt("<<del<<")/"<<a2;
				}
			}
		}
		cout<<endl;
	}
	return 0;
}

本地上可以运行,但洛谷上不能

2024/8/30 11:07
加载中...