Диофантово уравнение, задача на питоне
Диофантово уравнение — 2 Даны числа a,b,c,d,e. Подсчитайте количество таких целых чисел от 0 до 1000, которые являются корнями уравнения (a∗x∗∗3+b∗x∗∗2+c∗x+d)/(x−e)=0, и выведите их количество.
Входные данные
Вводятся целые числа a,b,c,d,e, не превосходящие 30000 по абсолютному значению.
Выходные данные
Выведите ответ на задачу.
Мой код выдаёт ошибку, мол на ноль делить нельзя:
a=int(input())
b=int(input())
c=int(input())
d=int(input())
e=int(input())
l=0
for i in range(1001):
if (a*i**3+b*i**2+c*i+d)/(i-e)==0:
l=l+1
print(l)
Ответы (4 шт):
А если немного подумать?
Если нельзя делить на ноль, то нужно начинать не с нуля.
for i in range(1, 1001)
Для решения вашей задачи можно воспользоваться циклом while, и сразу написать, что i = 1. Выглядеть будет так: while i <= 1001: дальше ваш код, в конце i += 1. Если всё равно будет неверный ответ, тогда ваша формула неверна.
a=int(input())
b=int(input())
c=int(input())
d=int(input())
e=int(input())
l=0
for i in range(1001):
if i!=e:
if (a*i**3+b*i**2+c*i+d)/(i-e)==0:
l=l+1
print(l)
a=int(input())
b=int(input())
c=int(input())
d=int(input())
e=int(input())
i = 1
l = 0
while i <= 1001:
if i!=e:
if (a*i**3+b*i**2+c*i+d)/(i-e)==0:
l += 1
i += 1
print(l)
В общем, я всё исправил, если не работает, ошиблись вы в формуле, а в ней ищите ошибки самостоятельно, иначе обучение программированию смысла не имеет.