Top.Mail.Ru
Ответы

Помогите с задачей, пожалуйста. Диофантово уравнение на PYTHON

Прохожу курс программирования на Python, совершенно не понимаю этот цикл for. Помогите, пожалуйста, с решением и пояснениями.

Диофантово уравнение на Python.
Даны числа a, b, c, d. Выведите в порядке возрастания все целые числа от 0 до 1000
1000 включительно, которые являются корнями уравнения 𝑎⋅𝑥3+𝑏⋅𝑥2+𝑐⋅𝑥+𝑑=0

Входные данные
Вводятся целые числа a, b, c, d. Все числа не превосходят по модулю 30000.

Выходные данные
Выведите ответ на задачу. Если в указанном промежутке нет корней уравнения, то ничего выводить не нужно.

По дате
По Рейтингу
Аватар пользователя
Новичок

Процедурный вариант:

123
 a, b, c, d = int(input()), int(input()), int(input()), int(input()) 
for x in range(0, 1000+1): 
  if ((a*x+b)*x+c)*x+d == 0: print(x)  


Функциональный вариант:

12
 a, b, c, d = map(int, [input() for _ in range(4)]) 
print(*(x for x in range(0, 1000+1) if ((a*x+b)*x+c)*x+d == 0))