s3Eva_IT2003_T1 Raíces enteras positivas del polinomio

Ejercicio: 3Eva_IT2003_T1 Raíces enteras positivas del polinomio

Propuesta de solución en Python: py_pdf, también incluye versión en matlab: m_pdf

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 3Eva_IT2003_T1 Raíces enteras positivas del polinomio
# propuesta de solución: edelros@espol.edu.ec

import numpy as np

def numraices(grado,coeficiente,a,b):
    encontre=0
    x = a
    while (x<=b):
        p = 0
        i = 0
        while (i<=grado):
            p = p + coeficiente[i]*(x**i)
            i = i + 1
        if (p==0):
            encontre = encontre+1
        x = x + 1
    return (encontre)

# PROGRAMA -----------------

# INGRESO
n = int(input("grado polinomio: "))
coeficiente = np.zeros(n+1,dtype=float)
for i in range(0,n+1,1):
    coeficiente[i] = float(input("coeficiente["+str(i)+"]: "))
print("Rango de busqueda: [a,b]")
a = int(input("a: "))
b = int(input("b: "))

# PROCEDIMIENTO
resultado = numraices(n,coeficiente,a,b)

# SALIDA
print("numero de raices enteras:")
print(resultado)

resultado del algoritmo

grado polinomio: 7
coeficiente[0]: 0
coeficiente[1]: -336
coeficiente[2]: 356
coeficiente[3]: 208
coeficiente[4]: -337
coeficiente[5]: 127
coeficiente[6]: 19
coeficiente[7]: 1
Rango de busqueda: [a,b]
a: -10
b: 40
numero de raices enteras:
1
>>>