給多項式次數 n 及係數。判斷其在實數域內是否可分解為次數更低的多項式乘積。n ≤ 100,但實際只有 n=2 需判斷,n>2 必可分解,n<2 不可分解(一次式不可約)。
#include
using namespace std;
int main() {
int n;
while (~scanf("%d", &n)) {
int a, b, c;
scanf("%d%d%d", &a, &b, &c); // 實際只用 n 和二次係數
if (n > 2) puts("NO");
else if (n < 2) puts("YES");
else {
if (b*b - 4*a*c >= 0) puts("NO");
else puts("YES");
}
}
return 0;
}
POJ 2126 是純數學題:**代數基本定理** 直接給出答案。無需實際因式分解,只需判斷次數與二次式判別式。代碼極短,考驗數學基礎。