#P2126. Factoring a Polynomial

    ID: 1127 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>其他数学数论Northeastern Europe 2003Northern Subregion

Factoring a Polynomial

问题描述

最近,Georgie 学习了关于多项式的知识。一个一元多项式可以表示为一个形式级数:anxn+an1xn1++a1x+a0a_nx^n + a_{n-1}x^{n-1} + \dots + a_1x + a_0,其中 xx 是形式变量,aia_i 是多项式的系数。最大的 ii 使得 ai0a_i \neq 0 称为多项式的次数。如果所有 ai=0a_i = 0,则多项式的次数被认为是 -\infty。如果多项式的次数是 0 或 -\infty,则称其为平凡的(trivial),否则称为非平凡的(non-trivial)。

Georgie 在学习多项式时,最让他印象深刻的是,在某些情况下,可以为多项式应用为整数开发的不同的算法和技术。例如,给定两个多项式,可以将它们相加、相乘,甚至将一个多项式除以另一个多项式。

Georgie 认为多项式最有趣的性质是,多项式可以像整数一样进行因式分解。如果一个多项式不能表示为两个或更多个非平凡多项式的乘积(系数为实数),则称该多项式为不可约的(irreducible)。否则,该多项式称为可约的(reducible)。例如,多项式 x22x+1x^2 - 2x + 1 是可约的,因为它可以表示为 (x1)(x1)(x - 1)(x - 1),而多项式 x2+1x^2 + 1 是不可约的。众所周知,任何多项式都可以表示为一个或多个不可约多项式的乘积。

给定一个整数系数的多项式,Georgie 想知道它是否是不可约的。当然,他也想知道它的因式分解,但这个问题对他来说现在太难了,所以他只想知道多项式是否可约。

输入格式

输入的第一行包含 nn —— 多项式的次数(0n200 \leq n \leq 20)。下一行包含 n+1n + 1 个整数,an,an1,,a1,a0a_n, a_{n-1}, \dots, a_1, a_0 —— 多项式的系数(1000ai1000-1000 \leq a_i \leq 1000an0a_n \neq 0)。

输出格式

如果输入文件中的多项式是不可约的,则输出 "YES",否则输出 "NO"。

示例输入 1

2 
1 -2 1 

示例输出 1

NO

来源

Northeastern Europe 2003, Northern Subregion