Ниже записана программа, которая вводит натуральное число x, выполняет преобразования, а затем выводит результат. Укажите наименьшее значение x, при вводе которого программа выведет число 45.
x = int(input())
a = x - 61
b = 3*x - 138
while a != b:
if a > b:
a -= b
else:
b -= a
print(a)
Для решения я изменил данную в условии программу, но она не работает, подскажите, пожалуйста, в чем ошибка?
for x1 in range(10000):
x=x1
a = x - 61
b = 3*x - 138
while a != b:
if a > b:
a -= b
else:
b -= a
if a==45:
print(x1)
break
(правильный ответ:106)
Answers & Comments
Здесь чутка надо подумать и увидеть, что мы должны в цикле for идти не от 0, а от числа 62, потому что если x < 62, то в переменной "a" мы получаем отрицательное число(или ноль в случае с x = 61), из-за этого наш цикл while будет выполняться бесконечно.
Исправление:
for x1 in range(62, 10009):
x=x1
a = x - 61
b = 3*x - 138
while a != b:
if a > b:
a -= b
else:
b -= a
if a == 45:
print(x1)
break