Factoring a Polynomial
Time Limit: 1000 ms Memory Limit: 65536 KiB
Recently Georgie has learned about polynomials. A polynomial in one variable can be viewed as a formal
sum an xn + an−1 xn−1 + . . . + a1 x + a0 , where x is the formal variable and ai are the coefficients of the
polynomial. The greatest i such that ai = 0 is called the degree of the polynomial. If ai = 0 for all i, the
degree of the polynomial is considered to be −∞. If the degree of the polynomial is zero or −∞, it is
called trivial, otherwise it is called non-trivial.
What really impressed Georgie while studying polynomials was the fact that in some cases one can apply
different algorithms and techniques developed for integer numbers to polynomials. For example, given
two polynomials, one may sum them up, multiply them, or even divide one of them by the other.
The most interesting property of polynomials, at Georgie’s point of view, was the fact that a polynomial,
just like an integer number, can be factorized. We say that the polynomial is irreducible if it cannot be
represented as the product of two or more non-trivial polynomials with real coefficients. Otherwise the
polynomial is called reducible. For example, the polynomial x2 − 2x + 1 is reducible because it can be
represented as (x − 1)(x − 1), while the polynomial x2 + 1 is not. It is well known that any polynomial
can be represented as the product of one or more irreducible polynomials.
Given a polynomial with integer coefficients, Georgie would like to know whether it is irreducible. Of
course, he would also like to know its factorization, but such problem seems to be too difficult for him
now, so he just wants to know about reducibility.
The first line of the input file contains n — the degree of the polynomial (0 ≤ n ≤ 20). Next line contains
n + 1 integer numbers, an , an−1 , . . . , a1 , a0 — polynomial coefficients (−1000 ≤ ai ≤ 1000, an = 0).
Output YES if the polynomial given in the input file is irreducible and NO in the other case.
2 1 -2 1 2 1 0 1