한 변수에 대한 다항식은 형식적인 합 anxn+an−1xn−1+⋯+a1x+a0 으로 나타낼 수 있으며, 여기서 x 는 형식 변수이고 ai 는 계수이다. ai=0 을 만족하는 가장 큰 i 를 다항식의 차수라고 한다. 모든 i 에 대해 ai=0 이면 차수는 −∞ 로 정의한다. 차수가 0 이거나 −∞ 인 다항식을 자명한(trivial) 다항식이라 하고, 그 외의 다항식을 자명하지 않은(non-trivial) 다항식이라 한다.
실수 계수 다항식을 두 개 이상의 자명하지 않은 실수 계수 다항식의 곱으로 나타낼 수 없으면 그 다항식을 기약(irreducible) 이라 하고, 그렇지 않으면 가약(reducible) 이라고 한다. 예를 들어 x2−2x+1=(x−1)(x−1) 이므로 x2−2x+1 은 가약이지만, x2+1 은 기약이다. 모든 다항식은 하나 이상의 기약 다항식의 곱으로 나타낼 수 있다는 사실이 잘 알려져 있다.
정수 계수 다항식이 주어질 때, 이 다항식이 실수 범위에서 기약인지 판정하여라.
첫째 줄에 다항식의 차수 n 이 주어진다 (0≤n≤20).
둘째 줄에 n+1 개의 정수 an,an−1,…,a1,a0 이 주어진다. 이는 다항식의 계수이다 (−1000≤ai≤1000, an=0).
주어진 다항식이 실수 범위에서 기약이면 YES 를, 그렇지 않으면 NO 를 출력한다.