Dado um polinômio, determine se é primo.
Um polinômio é ax^n + bx^(n-1) + ... + dx^3 + ex^2 + fx + g
, onde cada termo é um número constante (o coeficiente) multiplicado por uma potência inteira não negativa de x
. A potência mais alta com um coeficiente diferente de zero é chamada de grau. Para esse desafio, consideramos apenas polinômios de pelo menos grau 1. Ou seja, cada polinômio contém alguns x
. Além disso, usamos apenas polinômios com coeficientes inteiros.
Polinômios podem ser multiplicados. Por exemplo, (x+3)(2x^2-2x+3)
é igual 2x^3+4x^2-3x+9
. Assim, 2x^3+4x^2-3x+9
pode ser considerado x+3
e 2x^2-2x+3
, portanto, é composto.
Outros polinômios não podem ser fatorados. Por exemplo, 2x^2-2x+3
não é o produto de dois polinômios (ignorando polinômios constantes ou com coeficientes não inteiros). Por isso, é primo (também conhecido como irredutível).
Regras
- A entrada e a saída podem ser feitas de qualquer maneira padrão.
- A entrada pode ser uma sequência
2x^2-2x+3
, uma lista de coeficientes{2,-2,3}
, ou qualquer outro meio semelhante. - A saída é um valor verdadeiro, se for primo, ou um valor falsey, se for composto. Você deve produzir o mesmo valor de verdade para todos os números primos e o mesmo valor de falsey para todos os polinômios compostos.
- A entrada será de no mínimo 1 e no máximo 10.
- Você não pode usar ferramentas internas para fatoração (de números inteiros ou expressões) ou solução de equações.
Exemplos
Verdadeiro - principal
x+3
-2x
x^2+x+1
x^3-3x-1
-2x^6-3x^4+2
3x^9-8x^8-3x^7+2x^3-10
Falso - composto
x^2
x^2+2x+1
x^4+2x^3+3x^2+2x+1
-3x^7+5x^6-2x
x^9-8x^8+7x^7+19x^6-10x^5-35x^4-14x^3+36x^2+16x-12