Dado un polinomio, determina si es primo.
Un polinomio es ax^n + bx^(n-1) + ... + dx^3 + ex^2 + fx + g, donde cada término es un número constante (el coeficiente) multiplicado por una potencia entera no negativa de x. La potencia más alta con un coeficiente distinto de cero se llama grado. Para este desafío, solo consideramos polinomios de al menos grado 1. Es decir, cada polinomio contiene algunos x. Además, solo usamos polinomios con coeficientes enteros.
Los polinomios se pueden multiplicar. Por ejemplo, (x+3)(2x^2-2x+3)igual 2x^3+4x^2-3x+9. Por lo tanto, 2x^3+4x^2-3x+9puede factorizarse en x+3y 2x^2-2x+3, por lo tanto, es compuesto.
Otros polinomios no se pueden factorizar. Por ejemplo, 2x^2-2x+3no es el producto de dos polinomios (ignorando polinomios constantes o aquellos con coeficientes no enteros). Por lo tanto, es primo (también conocido como irreducible).
Reglas
- La entrada y la salida pueden realizarse de cualquier forma estándar.
- La entrada puede ser una cadena
2x^2-2x+3, una lista de coeficientes{2,-2,3}o cualquier medio similar. - La salida es un valor verdadero si es primo o un valor falso si es compuesto. Debe proporcionar el mismo valor de verdad para todos los números primos y el mismo valor de falsey para todos los polinomios compuestos.
- La entrada será de al menos grado 1 y como máximo de grado 10.
- No puede usar herramientas integradas para la factorización (de enteros o expresiones) o para resolver ecuaciones.
Ejemplos
Cierto - primo
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 - compuesto
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