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+9
puede factorizarse en x+3
y 2x^2-2x+3
, por lo tanto, es compuesto.
Otros polinomios no se pueden factorizar. Por ejemplo, 2x^2-2x+3
no 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